蒟蒻全wa求调
查看原帖
蒟蒻全wa求调
787424
Capoien_xie_bei_Chen楼主2023/10/3 01:06

RT

#include<bits/stdc++.h>
using namespace std;
const int mod=1e8;
char s1[5005],s2[5005];
int f[5005][2],g[5005][2];
int main(){
	scanf("%s%s",s1+1,s2+1);
	int len1=strlen(s1+1)-1,len2=strlen(s2+1)-1;
	for(int i=0;i<=len2;i++) g[0][i]=1;
	g[1][0]=1;
	for(int i=1;i<=len1;i++){
		for(int j=1;j<=len2;j++){
			int x=i&1;
			g[x][j]=0;
			f[x][j]=max(f[x^1][j],f[x][j-1]);
			if(s1[i]==s2[j]){
				f[x][j]=max(f[x][j],f[x^1][j-1]+1);
				g[x][j]+=g[x^1][j-1];
			}
			if(f[x][j]==f[x^1][j]) g[x][j]+=g[x^1][j];
			if(f[x][j]==f[x][j-1]) g[x][j]+=g[x][j-1];
			if(f[x][j]==f[x^1][j-1]) g[x][j]-=g[x^1][j-1];
			g[x][j]%=mod;
		}
	}
	printf("%d\n%d\n",f[len1&1][len2],g[len1&1][len2]);
	return 0;
}
2023/10/3 01:06
加载中...