區間dp小練

2021-08-05 22:11:08 字數 850 閱讀 5969

提綱:

區間dp一般設計f[i][j]表示區間i到j的dp值,用幾段小的合併成一段整體,也是分治的思想,轉移時列舉中間點k,從f[i][k],f[k+1][j]來合併

1.題目:

題解:石子歸併

水題開頭

**:

#include #include #include using namespace std;

int n,a[105],sum[105],f[105][105];

int main()

zh[80];

bool f[205][205][100];

char st[250];

int main()

題目:刪數

題解:這題目一讀就覺得是區間dp嘛

**:#include #include #include #include using namespace std;

int a[105],f[105][105];

int cost(int i,int j)

int main()

{ int n,i,j,k;

scanf("%d",&n);

for (i=1;i<=n;i++) scanf("%d",&a[i]);

for (i=1;i<=n;i++) f[i][i]=a[i];

//f[i][j]從i合併到j的最大值

for (i=2;i<=n;i++)

for (j=1;j<=n-i+1;j++)

{int r=j+i-1;

f[j][r]=cost(j,r);

for (k=j;k

數字dp小練

我是超連結 題意 找0 n中含有 49 的個數 題解 狀態 f i j 表示i位數以j開頭的數中不含49的個數 轉移 if j 4 k 9 f i j f i 1 k 不含49,最後用總數減去不含的就是含有的 因為資料n 1怕爆longlong,手動 1 include include define...

線性dp 區間dp

1 尼克的任務 額一道挺水的題,愣是做了幾個小時 動態規劃大致的思路還是找乙個轉移 換個詞就是影響 我們可以明顯看出本題的規則 空暇時,一遇到任務必須挑乙個接 求1 n時間內最大空暇時間 所以將任務排序是必要的,兩個關鍵字 再來想象一下當我做到第i 個任務時,我在 st i st i t i 1 時...

線狀DP及區間DP

這裡我們都用到動態規劃的思想 dynamic programming,簡稱dp。本質就是組合子問題來求解原問題,且對每個子問題只求解一次。一般來說四個步驟 1.刻畫乙個最優結構特徵 2.遞迴的定義最優解值 3.計算最優解的值 4.利用計算出的資訊構造乙個最優解 這邊直接給出 include incl...