http://oj.jxust.edu.cn/problem.php?id=1432
1 #include <iostream> 2 #include <string.h> 3 using namespace std; 4 5 char str[1009]; 6 int dp[1009][1009]; 7 8 int main(){ 9 int t; 10 scanf("%d", &t); 11 while(t--){ 12 scanf("%s", str+1); 13 int len = strlen(str+1); 14 memset(dp, 0, sizeof(dp)); 15 for(int i = 1; i <= len; ++i){ 16 for(int j = i-1; j > 0; --j){ 17 if(str[i] == str[j]){ 18 dp[j][i] = dp[j+1][i-1]; 19 }else{ 20 dp[j][i] = min(dp[j+1][i-1]+2, min(dp[j+1][i]+1, dp[j][i-1]+1)); 21 } 22 } 23 } 24 printf("%d ", dp[1][len]); 25 } 26 return 0; 27 }
只有不断学习才能进步!