样例不过全WA求助
查看原帖
样例不过全WA求助
662413
lmy_2011楼主2023/5/1 09:10
#include<iostream>
using namespace std;
const int mod=1000000007;
char a[1005],b[205];
int n,m,K,dp[2][205][205][2],s,false_,true_=1;
int main()
{
	cin>>n>>m>>K>>a>>b;
	for(int i=1;i<=n;i++)
	{
		swap(false_,true_); 
		dp[false_][1][1][0]=s;
		if(a[i]==b[1])
		{
			dp[false_][1][1][1]=1;
			s++;
		}
		for(int j=2;j<=m;j++)
		{
			for(int k=1;k<=K;k++)
			{
				if(a[i]==b[j])
				{
					dp[false_][j][k][1]=((dp[true_][j-1][k-1][1]+dp[true_][j-1][k][1])%mod+dp[true_][j-1][k-1][0])%mod;
				}
				dp[false_][j][k][0]=(dp[true_][j][k][0]+dp[true_][j][k][1])%mod;
			}
		}
		for(int j=1;j<=m;j++)
		{
			for(int k=1;k<=K;k++)
			{
				dp[true_][j][k][1]=dp[true_][j][k][0]=0;
			}
		}
	}
	cout<<(dp[false_][m][K][1]+dp[false_][m][K][0])%mod;
	return 0; 
}
2023/5/1 09:10
加载中...