动态规划初始化问题求助
查看原帖
动态规划初始化问题求助
443675
紊莫turtle楼主2023/7/15 13:58

读完深进来的,代码片段如下:

int n,m,k;
char a[N],b[M];
int g[2][N][M],f[2][N][M];
int main(){
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin>>n>>m>>k>>(a+1)>>(b+1);
	// F(i,1,n) cin>>a[i];
	// F(i,1,m) cin>>b[i];
	F(i,0,n) g[0][i][0]=1;
	F(c,1,k){
		memset(f[c&1],0,sizeof f[c&1]);
		memset(g[c&1],0,sizeof g[c&1]);
		F(i,1,n){
			F(j,1,m){
				if(a[i]==b[j]){
					f[c&1][i][j]=(f[c&1][i-1][j-1]+g[(c&1)^1][i-1][j-1])%mod;
				}
				g[c&1][i][j]=(g[c&1][i-1][j]+f[c&1][i][j])%mod;
			}
		}
	}
	cout<<g[k&1][n][m];
    return 0;
}

唯一不理解的是初始化的方法,能否解释其含义?或者给出其他可行的初始化方法。

2023/7/15 13:58
加载中...