學習筆記 區間dp

2022-04-29 23:39:10 字數 1015 閱讀 2310

\(f[l][r][w/i/n/g]\) 表示區間 \([l,r]\) 中能否壓縮成 \(w/i/n/g\)

\(code\ below:\)

#include using namespace std;

const int maxn=200+10;

int n,w,i,n,g,le[maxn],fir[maxn],sec[maxn],f[maxn][maxn][4],cnt;

char s[maxn];

int check(char ch)

char toalpha(int i)

int main()

for(int i=1;i<=i;i++)

for(int i=1;i<=n;i++)

for(int i=1;i<=g;i++)

scanf("%s",s+1);n=strlen(s+1);

for(int i=1;i<=n;i++) f[i][i][check(s[i])]=1;

for(int i=n-1;i>=1;i--)

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

for(int k=i;k兩次 \(dp\)

第一次 \(dp\) 出每一條木板粉刷 \(k\) 次最多能刷多少格仔

第二次 \(dp\) 出最終答案,也就是把第一次 \(dp\) 的結果合併一下

\(code\ below:\)

#include using namespace std;

const int maxn=50+10;

int n,m,t,sum[maxn],f[maxn][maxn],dp[maxn][maxn*maxn];

char a[maxn];

int main()

}int ans=0;

for(int i=1;i<=t;i++) ans=max(ans,dp[n][i]);

printf("%d\n",ans);

return 0;

}

區間dp學習筆記

定義 區間動態規劃問題一般都是考慮,對於每段區間,他們的最優值都是由幾段更小區間的最優值得到,是分治思想的一種應用,將乙個區間問題不斷劃分為更小的區間直至乙個元素組成的區間,列舉他們的組合 求合併後的最優值。設f i,j 1 i j n 表示區間 i,j 內的數字相加的最小代價最小區間f i,i 0...

區間dp學習筆記

怎麼辦,膜你賽要掛慘了,下午我還在學區間 dp 不管怎麼樣,計畫不能打亂 4 不 4 為啥我一開始就先弄模板呢?因為這東西看模板就能看懂。for int i 2 i len i 列舉區間長度 for int l 1,r l len 1 r n l r 列舉左端點和右端點 以下你可以搞一下事情 for...

區間DP學習筆記

顧名思義 區間dp就是在區間上進行動態規劃,求解一段區間上的最優解。主要是通過合併小區間的 最優解進而得出整個大區間上最優解的dp演算法。題目描述給出乙個長度為n的字串,每次可以刪除乙個字母相同的子串,問最少需要刪多少次。資料規模 n 500 輸入格式第1行 1個整數,表示字串的長度 第2行 n個字...