首页 > 代码库 > 【HDOJ】1513 Palindrome
【HDOJ】1513 Palindrome
DP,MLE后改为滚动数组AC。
1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 5 #define MAXN 5001 6 #define INF 0x3f3f3f3f 7 char str[MAXN]; 8 short dp[2][MAXN]; 9 10 11 int getmin(int x, int y) {12 return x<y ? x:y;13 }14 15 int main() {16 int n;17 int i, j, k;18 19 while (scanf("%d", &n) != EOF) {20 scanf("%s", str+1);21 memset(dp, 0, sizeof(dp));22 for (i=n; i>0; --i) {23 k = i&1;24 for (j=i+1; j<=n; ++j) {25 if (str[i] == str[j]) {26 dp[k][j] = dp[!k][j-1];27 } else {28 dp[k][j] = getmin(dp[!k][j], dp[k][j-1]) + 1;29 }30 }31 }32 printf("%d\n", dp[1][n]);33 }34 35 return 0;36 }
【HDOJ】1513 Palindrome
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。