就是想的時候不要想漏了轉移方式。
對於乙個回文串 去掉最左和最右兩個後依然是回文串,好了。。。dp
轉移有三種,一種是從 dp[i+1][j] 轉移過來,一種是從 dp[i][j-1] 轉移過來,一種是從 dp[i-1][j-1] 轉移過來
#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;
#define read freopen("acm.in","r",stdin)
#define write freopen("acm.out","w",stdout)
#define ll long long
#define ull unsigned long long
#define pii pair#define pdi pair#define pdd pair#define mii map::iterator
#define fst first
#define sec second
#define ms(x,d) memset(x,d,sizeof(x))
#define inf 0x3f3f3f3f
#define all(x) x.begin(),x.end()
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define root 0,n-1,1
#define pb push_back
#define for(a,b,c) for(int a=b;a
DP 重疊子問題 POJ 3280
以案例給出的abcb為例 假定字串abcb的子串ab,形成回文字串有四種構造方法 1.刪除開頭的a ab b 2.刪除結尾的b ab a 3.在結尾增加a ab aba 4.在開頭增加b ab bab 經過以上四種構造方法,便已然講ab構成回文串的費用記錄於陣列中由以上類推,此dp的重疊子問題是 其...
簡單的區間 dp
今天我們來一起研究一下比較奇怪的區間dp 先看一道例題 石子合併 很老的題了 1960 石子合併 time limit 1 sec memory limit 128 mb submit 191 solved 78 submit status web board description 在乙個圓形操場...
POJ 1141 括號區間DP
1.題目鏈結。其實這個題目就是一般的區間dp,不過感覺輸出還是需要一點技巧的。2.dp i j 表示區間 i,j 需要加的括號的最小的數量,那就分為兩種情況討論,s i 與s j 匹配的時候,s i 與s j 不匹配的時候。匹配的時候直接就是有dp i 1 j 1 轉移而來,不匹配的時候,列舉中間點...