求条玄关
查看原帖
求条玄关
1328469
glass_goldfish楼主2024/10/7 16:27
#include<bits/stdc++.h>
#define int long long
#define INF 0x3f3f3f
#define mod 998244353
using namespace std;
int n,m,k,a[201][201],b[201][201];
int f[2][101][101][101][101];
signed main(){
	cin>>n>>m>>k;
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
		cin>>a[i][j];
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++)
		cin>>b[i][j];
	f[1][1][0][0][k]=1;
	for(int i=1,now=1,old=0;i<=n;i++,now^=1,old^=1){
		for(int j=1;j<=m;j++){
			for(int L=0;L<=n;L++){
				for(int Z=0;Z<=m;Z++){
					for(int p=0;p<=k;p++){
						if(i>1)f[now][j][L][Z][p]+=f[old][j][L+1][Z][p];
						if(j>1)f[now][j][L][Z][p]+=f[now][j-1][L][Z+1][p];
						if(L>0&&p+a[i][j]<=k)f[now][j][L][Z][p]+=f[now][j][L-1][Z][p+a[i][j]];
						if(Z>0&&p+b[i][j]<=k)f[now][j][L][Z][p]+=f[now][j][L][Z-1][p+b[i][j]];
						if(L>0&&Z>0&&p+a[i][j]+b[i][j]<=k)
							f[now][j][L][Z][p]+=(mod-f[now][j][L-1][Z-1][p+a[i][j]+b[i][j]]);
						f[now][j][L][Z][p]%=mod;
					}
				}
			}
			cout<<f[now][j][0][0][0]<<" ";
		}
		cout<<"\n";
		for(int j=1;j<=n;j++){
			for(int L=0;L<=m;L++){
				for(int Z=0;Z<=m;Z++){
					for(int p=0;p>=k;p++){
						f[old][j][L][Z][p]=0;
					}
				}
			}
		}
	}
	return 0;
}

3030 pts

2024/10/7 16:27
加载中...