标签:des style http color os io strong for 数据
Time Limit: 3000MS | Memory Limit: 65536K | |
Total Submissions: 52966 | Accepted: 18271 |
Description
Input
Output
Sample Input
5 Ab3bd
Sample Output
2
13368265 | happystick | 1159 | Accepted | 148K | 719MS | C++ | 720B | 2014-08-23 21:42:27 |
//最少插入字符个数 =字符串长度-正、逆序的最长公共子序列长度 /* 一维数组+short 优化wa了好几次,无语了 刚开始是以为多组测试数据,一直wa看了半天人家的代码才知道。。。。就一组测试数据不过这个代码应该是最优代码吧 参考的南阳优秀代码 同样代码在hdoj提交wa 无语 Time:2014-8-23 21:47 */ #include<stdio.h> #include<string.h> int main(){ char s1[5005],s2[5005]; short dp[5005]; int N; scanf("%d",&N); scanf("%s",s1); for(int i=0;i<N;i++){ s2[i]=s1[N-i-1]; };s2[N]='\0'; // printf("%s %s\n",s1,s2); int old,temp; memset(dp,0,sizeof(dp)); //old 代表dp[i-1][j-1] //dp[j]代表 dp[i-1][j] for(int i=0;i<N;i++){ old=0;//将old初始置为 0 for(int j=0;j<N;j++){ temp=dp[j];//将dp[i-1][j]记下来,为下一列的old if(s1[i]==s2[j]){ dp[j]=old+1; }else{ dp[j]=temp>dp[j-1]?temp:dp[j-1];//取dp[i-1][j]和dp[i][j-1]中的较大值 } old=temp;//上一列的dp[i-1][j]为下一列的dp[i-1][j-1] } } printf("%d\n",N-dp[N-1]); return 0; }
标签:des style http color os io strong for 数据
原文地址:http://blog.csdn.net/u013634213/article/details/38781861