恶臭LCS
Posted hazel-wu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恶臭LCS相关的知识,希望对你有一定的参考价值。
今天(2019/10/13)考的题目,用学长写的能让人崩溃的LCS改编的
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int mod=100000000;
const int maxn=5005;
char a[maxn], b[maxn];
int f[2][maxn],g[2][maxn];
int main() {
scanf("%s",a+1);
scanf("%s",b+1);
int n=strlen(a+1)-1, m=strlen(b+1)-1;
g[1][0]=1;
for(int j=0;j<=m;j++)
_____1_____;
for(int i=1;i<=n;i++)
{
int now=i&1,pre=now^1;
for(int j=1; j<=m; j++)
{
f[now][j]=_____2_____;
if(a[i]==b[j])
{
f[now][j]=_____3_____;
if(f[now][j]==f[pre][j-1]+1)
g[now][j]=g[pre][j-1];
}
else
{
g[now][j]=0;
if(f[now][j]==f[pre][j-1])
g[now][j]-=g[pre][j-1];
}
if(f[now][j]==f[pre][j])
g[now][j]=_____4_____;
if(f[now][j]==f[now][j-1])
g[now][j]=_____5_____;
}
}
printf("%d
%d",f[n&1][m],g[n&1][m]);
return 0;
}
1.1上述程序___1___中应该填写()
A.g[0][j]=0 B.g[j][0]=0 C.g[0][j]=1 D.g[j][0]=1
1.2 上述程序___2___中应该填写()
A.min(f[pre][j-1],f[now][j-1]) B.max(f[pre][j],f[now][j]) C.max(f[pre][j],f[now][j-1]) D.max(f[now][j],f[pre][j-1])
1.3 上述程序___3___中应该填写()
A.min(f[pre][j-1],f[now][j-1]+1) B.max(f[pre][j],f[now][j]+1) C.max(f[pre][j],f[now][j-1]+1) D.max(f[now][j],f[pre][j-1]+1)
1.4 上述程序___4___中应该填写()
A.(g[now][j]+g[pre][j-1])%mod B.(g[now][j-1]+g[pre][j])%mod C.(g[now][j]+g[pre][j])%mod D.(g[now][j-1]+g[pre][j-1])%mod
1.5 上述程序___5___中应该填写()
A.(g[now][j]+g[pre][j-1])%mod B.(g[now][j-1]+g[pre][j])%mod C.(g[now][j]+g[pre][j])%mod D.(g[now][j-1]+g[pre][j-1])%mod
1.1 B
1.2 A
1.3 B
1.4 B
1.5 B
以上是关于恶臭LCS的主要内容,如果未能解决你的问题,请参考以下文章