AtCoder Regular Contest 077/AtCoder Beginner Contest 066 D問題 - 11

Source

AtCoder Regular Contest 077
AtCoder Beginner Contest 066
問題文 (ARC)
問題文 (ABC)

問題概要

省略

解法

省略

cLayversion 20190822-2)のコード

C++に変換後のコードはこちら

int N, A[100001];
int cnt[1d5];
mint res[100001];
{
  int i, j, k, m, a, c;
  combination_mint comb;

  rd(N,(A--)(N+1));
  rep(i,N+1) cnt[A[i]]++;
  rep(m,N) if(cnt[m]==2) break;
  
  rep(i,N+1) if(A[i]==m) a = i, break;
  rep(i,N+1) if(A[N-i]==m) c = i, break;

  comb.init(N+2);

  rep(k,1,N+2){
    res[k-1] += comb.C(N-1, k);
    res[k-1] += comb.C(N-1, k-2);

    res[k-1] += 2 comb.C(N-1, k-1);
    res[k-1] -= comb.C(a+c, k-1);
  }

  wtLn(res(N+1));
}

Current time: 2021年09月24日18時11分05秒
Last modified: 2019年08月26日09時00分16秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest AtCoder_Beginner_Contest ARC077 ABC066 ARC_B ABC_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: