80分记录:https://www.luogu.com.cn/record/130438006
#include<bits/stdc++.h>
#define int long long
#define MOD 998244353
using namespace std;
int n,m,q,a[46][46],b[46][46],dp[2][46][91][46][46],p,u;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>m>>q;
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];
}
}
dp[1][1][0][0][0]=1;
for(int i=1;i<=n;i++){
u=i%2;
for(int j=1;j<=m;j++){
if(i!=1){
dp[u][j][0][0][0]=0;
}
for(int k=1;k<=q;k++){
for(int l=0;l+i<=n;l++){
for(int r=0;r+j<=m;r++){
p=0;
if(l!=0&&k>=a[i][j]){
p+=dp[u][j][k-a[i][j]][l-1][r];
}
if(r!=0&&k>=b[i][j]){
p+=dp[u][j][k-b[i][j]][l][r-1];
}
if(l!=0&&r!=0&&k>=a[i][j]+b[i][j]){
p-=dp[u][j][k-a[i][j]-b[i][j]][l-1][r-1];
}
if(i!=1){
p+=dp[!u][j][k][l+1][r];
}
if(j!=1){
p+=dp[u][j-1][k][l][r+1];
}
dp[u][j][k][l][r]=p%MOD;
if(k==q&&l==0&&r==0){
cout<<dp[u][j][k][l][r]<<" ";
}
}
}
}
}
cout<<endl;
}
return 0;
}