Mujin Programming Challenge 2018
問題文
省略
省略
C++に変換後のコードはこちら
#define MD 998244353
int N, A[1000];
int vis[1010][1010];
mint dp[1010][1010], c[1010][1010];
mint solve(int d, int r){
int k;
mint res;
if(d+r > N) return 0;
if(vis[d][r]) return dp[d][r];
vis[d][r] = 1;
if(d==N){
if(r==0) res = 1;
} else {
res = 0;
if(r) res += solve(d+1, r-1);
REP(i,1,min(A[d]+1, N-d-r+1)) res += solve(d+1, r+i-1) * c[r+i-1][i-1];
}
return dp[d][r] = res;
}
{
rd(N,A(N));
sortA(N,A);
rep(i,1010) c[i][0] = 1;
rep(i,1,1010) rep(j,1,1010) c[i][j] = c[i-1][j-1] + c[i-1][j];
wt(solve(0,0));
}
Current time: 2024年04月26日06時05分36秒
Last modified: 2019年09月26日02時52分42秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)