題意:給乙個字串,問至少切割幾次使每子串都是回文的。
解法:f[i]表示前i個字元至少需要切割幾次,預處理p[i][j]表示子串s[i]~s[j]是否為回文串。o(n^2)
另外,這題也類似「山區建小學」,可以列舉每個回文串的中心。但稍微麻煩一點。
1 #include2 #include3 #include4 #include5using
namespace
std;67
#define n 1010
8char
s[n];
9int
p[n][n],f[n];
1011
int mmin(int x,int y)
1213
intmain()
1429 f[0]=-1;30
for (int i=1;i<=l;i++)
3136 printf("
%d\n
",f[l]);37}
38return0;
39 }
openjudge 切割回文
描述 阿福最近對回文串產生了非常濃厚的興趣。如果乙個字串從左往右看和從右往左看完全相同的話,那麼就認為這個串是乙個回文串。例如,abcaacba 是乙個回文串,abcaaba 則不是乙個回文串。阿福現在強迫症發作,看到什麼字串都想要把它變成回文的。阿福可以通過切割字串,使得切割完之後得到的子串都是回...
openjudge 切割回文
總時間限制 1000ms 記憶體限制 65536kb 描述 阿福最近對回文串產生了非常濃厚的興趣。如果乙個字串從左往右看和從右往左看完全相同的話,那麼就認為這個串是乙個回文串。例如,abcaacba 是乙個回文串,abcaaba 則不是乙個回文串。阿福現在強迫症發作,看到什麼字串都想要把它變成回文的...
poj 8471 切割回文 dp 維度壓縮
poj 8471 切割回文 dp 維度壓縮 總時間限制 1000ms 記憶體限制 65536kb 描述 阿福最近對回文串產生了非常濃厚的興趣。如果乙個字串從左往右看和從右往左看完全相同的話,那麼就認為這個串是乙個回文串。例如,abcaacba 是乙個回文串,abcaaba 則不是乙個回文串。阿福現在...