站外题求助
  • 板块灌水区
  • 楼主tan999999
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/19 10:02
  • 上次更新2024/10/19 12:04:48
查看原帖
站外题求助
932905
tan999999楼主2024/10/19 10:02

题目描述

#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
const int N=1e3+5e2,mod=998244353;
ll c[N][N],k,a[N],dp[N][N];

int main(){
	//freopen("string.in","r",stdin);
	//freopen("string.out","w",stdout);
    c[0][0]=1;
    for(int i=1;i<=1000;i++){
		c[i][0]=c[i][i]=1;
		for(int j=1;j<=i;j++){
			c[i][j]=(c[i-1][j]+c[i-1][j-1]) % mod;
		}
	}
	cin>>k;
	for(int i=1;i<=26;i++) cin>>a[i];
	dp[0][0]=1;
	for(int i=1;i<=26;i++){
		for(int j=0;j<=k;j++)
			for(int l=0;l<=a[i];l++){
				if(j+l>k) break;
				dp[i][j+l]=(dp[i][j+l]+dp[i-1][j]*c[j+l][j] % mod) % mod;
			}
		}
	}
	ll ans=0;
	for(int i=1;i<=k;i++){
		ans=(ans+dp[26][i])%mod;
	}
	cout<<ans<<"\n";
	return 0;
}
2024/10/19 10:02
加载中...