题解
2023-08-19 15:21:22
发布于:广东
18阅读
0回复
0点赞
#include<bits/stdc++.h>
#define giegie long long
// 我家giegie那么可爱,怎么能当小黑子
using namespace std;
const int maxn=200,maxm=3000,maxk=998244353;
int n,m;
giegie ans=1;
giegie cnt[maxn],w[maxn][maxm],f[maxn][maxm];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>w[i][j], cnt[i]=(cnt[i]+w[i][j])%maxk;
}
ans=(ans*(cnt[i]+1))%maxk;
}
ans=(ans+maxk-1)%maxk;
for(int i=1;i<=m;i++)
{
memset(f,0,sizeof(f));
f[0][0]=1;
for(int j=1;j<=n;j++)
for(int k=0;k<=2*(j-1);k++)
{
f[j][k]=(f[j][k]+f[j-1][k]*(cnt[j]-w[j][i]))%maxk;
f[j][k+1]=(f[j][k+1]+f[j-1][k])%maxk;
f[j][k+2]=(f[j][k+2]+f[j-1][k]*w[j][i])%maxk;
}
for(int j=n+1;j<=2*n;j++)
ans=(ans+maxk-f[n][j])%maxk;
}
cout<<ans;
return 0;
}
这里空空如也
有帮助,赞一个