0
已解决
董子墨
中级天翼
中级天翼
WA0 怎么错了?
#include<iostream>
using namespace std;
string a,b;
int len[1005];
int f[1005][1005],t;
int main(){
getline(cin,a);
getline(cin,b);
a=" "+a;
b=" "+b;
swap(a,b);
int m=a.length(),n=b.length();
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
if(a[i]==b[j]){
f[i][j]=f[i-1][j-1]+1;
len[f[i][j]]=i;
}
else
f[i][j]=max(f[i-1][j],f[i][j-1]);
for(int i=1;i<=f[m][n];i++)
cout<<a[len[i]];
return 0;
}
不会的严禁蹭帖!!!董宇昊、沈峻宇请注意!!!
严禁发整段代码!!!严禁违反版规!!!
董子墨在2020-06-11 19:35:27追加了内容
@黄子澄 @王光裕 @所有上过最长公共子串的酷町堂学员
董子墨在2020-06-12 17:20:25追加了内容
新错误(WA80)代码:
#include<iostream>
using namespace std;
string a,b;
int f[1005][1005],g[1005][1005];
void print(int x,int y){
if(x==0||y==0)
return ;
if(g[x][y]==1){
print(x-1,y-1);
cout<<b[y];
}
else if(g[x][y]==2)
print(x-1,y);
else
print(x,y-1);
}
int main(){
getline(cin,a);
getline(cin,b);
int m=a.length(),n=b.length();
a=" "+a;
b=" "+b;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
if(a[i]==b[j]){
f[i][j]=f[i-1][j-1]+1;
g[i][j]=1;
}
else if(f[i-1][j]>=f[i][j-1]){
f[i][j]=f[i-1][j];
g[i][j]=2;
}
else{
f[i][j]=f[i][j-1];
g[i][j]=3;
}
print(m,n);
return 0;
}
哪错了?
董子墨在2020-06-12 17:40:36追加了内容
求大佬解答
董子墨在2020-06-13 10:03:28追加了内容
顶
董子墨在2020-06-16 18:13:30追加了内容
顶顶顶!
我就不信没有人会
董子墨在2020-06-16 18:17:05追加了内容
如果2020-6-23 23:59:59 及之前还没有能让我AC的答案,那我就自动采纳能让我做到最高分的答案。
董子墨在2020-06-17 17:29:28追加了内容
更改一下时间:如果在2020-7-10 23:59:59 前还没能让我AC的答案,那我就采纳能让我做到最高分的答案
董子墨在2020-06-17 17:32:14追加了内容
也可以加我QQ告诉我。QQ:485986741
董子墨在2020-06-25 08:40:12追加了内容
顶
董子墨在2020-07-02 17:06:37追加了内容
顶
0
0
0
董宇昊
初级启示者
初级启示者
大佬,明明这么简单
如果价钱超过酷町猫带的钱
因为他的钱不够了
价钱就减去5 相对 次数也要减1,然后退出循环
- sum-=5;
- cnt-=1;
否则一直加5 相对 次数也要自增
- sum+=5;
- cnt++;
最后输出就可以了
提示:sum的初始值
董宇昊在2020-06-16 21:08:41追加了内容
好像说错题了
呃呃,我说成5008了
我的时间呀
大家别举报了!谢谢~
0