Mujin Programming Challenge 2018 F問題 - チーム分け

Source

Mujin Programming Challenge 2018
問題文

問題概要

省略

解法

省略

cLayversion 20190925-1)のコード

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: 2021年09月28日23時55分45秒
Last modified: 2019年09月26日02時52分42秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: