10分代码求调
查看原帖
10分代码求调
968531
Lunar_Whisper楼主2024/8/7 23:05
# include <bits/stdc++.h>
using namespace std;
#define int long long 
char s[1010],t[1010];
map<int,int> dp[1010][1010][2];
const int mod = 1e9+7;
signed main (){
	int n,m,k;
	scanf("%lld%lld%lld",&n,&m,&k);
	scanf("%s%s",(s+1),(t+1));
	for(int i = 0;i <= n;i++) dp[i][0][0][0] = 1;
	for(int i = 1;i <= n;i++)
	{
		for(int j = 1;j <= m;j++)
		{
			for(int u = 1;u <= k;u++)
			{
				if(s[i] == t[j])
				{
					dp[i][j][u][0] += (dp[i-1][j][u][0]+dp[i-1][j][u][1])%mod;
					dp[i][j][u][1] += ((dp[i-1][j-1][u-1][0]+dp[i-1][j-1][u-1][1])%mod+dp[i-1][j-1][u][1])%mod;
				}
				else
				{
					dp[i][j][u][1] = 0;
					dp[i][j][u][0] += (dp[i-1][j][u][0]+dp[i-1][j][u][1])%mod;
				}
			}
		}
	}
	cout << (dp[n][m][k][0]+dp[n][m][k][1])%mod;
	return 0;
}

求教一下各位大佬,上面的代码虽然会爆空间,但是我还是决定写一下,可是却00分,请求各位大佬帮忙找一下问题!谢谢各位

2024/8/7 23:05
加载中...