求助,已WA
  • 板块灌水区
  • 楼主2024TZY
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/6/16 10:38
  • 上次更新2024/6/16 12:57:06
查看原帖
求助,已WA
1278855
2024TZY楼主2024/6/16 10:38
#include<bits/stdc++.h>
using namespace std;
const int mod=998244353;
int K,c[27];long long f[27][1005],C[1005][1005],jie[1005];
long long pw(long long a,long long b)
{
	long long ret=1;
	while(b)
	{
		if(b&1)ret=ret*a&mod;
		a=a*a%mod;
		b>>=1;
	}
	return ret;
}
long long inv(long long n)
{
	return pw(n,mod-2);
}

int main()
{
	cin>>K;
	int sum=0;
	for(int i=1;i<=26;i++)cin>>c[i];
	
	jie[0]=1;
	for(int i=1;i<=K;i++)jie[i]=jie[i-1]%mod; 
	for(int i=1;i<=K;i++)
	{
		for(int j=0;j<=i;j++)C[i][j]=jie[i]*inv(jie[j])%mod*inv(jie[i-j]);
	}
	
	f[0][0]=1;
	for(int j=1;j<=26;j++)
	{
		f[j][0]=1;
		for(int i=1;i<=min(K,sum);i++)
		{
			f[j][i]=f[j-1][i];
			for(int p=1;p<=c[j]&&p<=i;p++)
			{
				f[j][i]=(f[j][i]+f[j-1][i-p]*C[i][p])%mod;
				
			}
		}
	}
	long long ans=0;
	for(int i=1;i<=K;i++)
	{
		ans=(ans+f[26][i])%mod;
	}
	cout<<ans;
	return 0;
}

2024/6/16 10:38
加载中...