恳请热心谷民帮忙查错
查看原帖
恳请热心谷民帮忙查错
289056
北射天狼楼主2023/10/6 16:25
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int Mod = 998244343;
const int N = 105;
const int M = 2005;
int n,m;
int a[N][M];
int f[N][N << 1],ans = 1;
int sum[N];
signed main()
{
	scanf("%lld%lld",&n,&m);
	for (int i=1;i<=n;i++){
		for (int j=1;j<=m;j++){
			scanf("%lld",&a[i][j]);
			sum[i] += a[i][j];
			sum[i] %= Mod;
		}
		ans = (ans * (sum[i] + 1)) % Mod;
	}
	ans = (ans + Mod - 1)  % Mod;
	for (int col = 1;col <= m;col++){
		memset(f,0,sizeof(f));
		f[0][n] = 1;
		for (int i=1;i<=n;i++)
		    for (int j=n-i;j<=n+i;j++)
		       f[i][j] = (f[i-1][j] + a[i][col] * f[i-1][j-1] % Mod+ ((sum[i] - a[i][col] + Mod) % Mod) * f[i-1][j+1] % Mod) % Mod;
		for (int j=1;j<=n;j++)
		    ans = (ans - f[n][n + j] + Mod) % Mod;
	}
	printf("%lld\n",ans);
	return 0;
}
2023/10/6 16:25
加载中...