第五回 アルゴリズム実技検定 L問題 - T消し

Source

第五回 アルゴリズム実技検定
問題文

問題概要

省略

解法

省略

cLayversion 20201229-1)のコード

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

int N;
char S[102], T[5];
int dp[100][100];

int solve(int a, int b){
  int res = 0;
  if(a > b) return 0;
  if(dp[a][b] >= 0) return dp[a][b];
  res >?= solve(a+1, b);
  if(S[a] == T[0]){
    rep(i,a+1,b,3) if(S[i]==T[1]) rep(j,i+1,b+1,3) if(S[j]==T[2]){
      if(3 * solve(a+1,i-1) != i-a-1) continue;
      if(3 * solve(i+1,j-1) != j-i-1) continue;
      res >?= 1 + solve(a+1,i-1) + solve(i+1,j-1) + solve(j+1,b);
    }
  }
  return dp[a][b] = res;
}

{
  rd(N,S,T);
  rep(i,N) rep(j,N) dp[i][j] = -int_inf;
  wt(solve(0,N-1));
}

Current time: 2021年09月28日23時07分00秒
Last modified: 2020年12月30日16時59分28秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: