标签:
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4062 Accepted Submission(s): 1384
1 #include <cstdio> 2 #include <cstring> 3 #include <iostream> 4 using namespace std; 5 char a[5050], b[5050]; 6 int dp[2][5050]; 7 int main() 8 { 9 int n; 10 while(~scanf("%d", &n)) 11 { 12 scanf("%s", b); 13 strcpy(a, b); 14 strrev(b); 15 memset(dp, 0, sizeof(dp)); //+F+++U++++K++ 16 for(int i = 1; i <= n; i++) 17 for(int j = 1; j <= n; j++) 18 { 19 if(a[i-1] == b[j-1]) 20 dp[i%2][j] = dp[(i-1)%2][j-1] + 1; 21 else 22 dp[i%2][j] = max(dp[(i-1)%2][j], dp[i%2][j-1]); 23 } 24 printf("%d\n", n - dp[n%2][n]); 25 } 26 return 0; 27 }
标签:
原文地址:http://www.cnblogs.com/fengshun/p/4719176.html