不会做
2023-11-23 13:49:21
发布于:福建
30阅读
0回复
0点赞
太简单了太难了啦┭┮﹏┭┮
o(╥﹏╥)o
全部评论 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
有帮助,赞一个