是不是我太久没做题目的关系,
我记得曾经在输入后面不加eof跟加eof是等价的啊。。。。
害我tle了n次,最后加了一下,就变成0ms了。。。
不多说了,因为是经典的动态规划题:
直接看代码好了:
Code
#include<stdio.h>
#include<string.h>
#define max(a,b) (a>b?a:b)
char a[1005],b[1005];
int best[1005][1005];
void process()
{
int lena,lenb,i,j;
lena=strlen(&a[1]);lenb=strlen(&b[1]);
for(i=0;i<=lena;i++)
best[i][0]=0;
for(j=0;j<=lenb;j++)
best[0][j]=0;
for(i=1;i<=lena;i++){
for(j=1;j<=lenb;j++){
if(a[i]==b[j])
best[i][j]=best[i-1][j-1]+1;
else
best[i][j]=max(best[i-1][j],best[i][j-1]);
}
}
printf("%d\n",best[lena][lenb]);
}
int main()
{
int i;
while(scanf("%s %s",&a[1],&b[1])!=EOF){
process();
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步