全部评论 1

  • #include<bits/stdc++.h>
    #define giegie long long
    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;
    

    }

    
    

    拿走不送

    2025-06-30 来自 北京

    0
首页