AtCoder Regular Contest 119 F問題 - AtCoder Express 3

Source

AtCoder Regular Contest 119
問題文

問題概要

省略

解法

省略

cLayversion 20210405-1)のコード

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

int N, K;
char C[4002];
Modint dp[3][2][4][2010], nx[3][2][4][2010];
{
  Modint res = 0;
  int c1, c2;
  rd(N--,K,C);

  if(C[0]=='?' || C[0]=='A') dp[2][0][0][0]++;
  if(C[0]=='?' || C[0]=='B') dp[2][1][0][0]++;

  rep(k,1,N){
    rep(t,3) rep(x,2) rep(y,4) rep(i,K+1) nx[t][x][y][i] = 0;
    rep(t,3) rep(x,2) rep(y,4) rep(i,K+1) if(dp[t][x][y][i]){
      rep(m,2){
        if(m==0 && C[k]=='B') continue;
        if(m==1 && C[k]=='A') continue;
        if(x==m) nx[t][x][min(3,y+1)][i] += dp[t][x][y][i], continue;

        c1 = i + t - 1 + y;
        c2 = i + 1;
        c1 <?= c2 + 1;
        c2 <?= c1 + 1;
        nx[c2-c1+1][m][0][c1] += dp[t][x][y][i];
      }
    }
    rep(t,3) rep(x,2) rep(y,4) rep(i,K+1) dp[t][x][y][i] = nx[t][x][y][i];
  }

  rep(t,3) rep(x,2) rep(y,4) rep(i,K+1) if(i+1 <= K || i+t+y <= K) res += dp[t][x][y][i];
  wt(res);
}

Current time: 2021年09月28日06時50分42秒
Last modified: 2021年05月20日22時27分57秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest ARC119 ARC_F
トップページに戻る

Logged in as: unknown user (not login)

ログイン: