标签: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