技術室奥プログラミングコンテスト#4 Day1 L問題 - じゃんけん

Source

技術室奥プログラミングコンテスト#4 Day1
問題文

問題概要

省略

解法

省略

cLayversion 20190902-1)のコード

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

int N, M, K, X, Y;
int A[5000], B[5000];
int C[2000], D[2000];

char buf[10];

int dp[2000], nx[2000];
int gain[3];

{
  int i, j, k, t, res;
  graph g;
  
  rd(N,M,K,X,Y, (A--,B--)(M));
  rep(i,N){
    rd(buf);
    if(buf[0]=='G') C[i] = 0;
    if(buf[0]=='C') C[i] = 1;
    if(buf[0]=='P') C[i] = 2;
  }
  rd((D--)(K));

  g.setEdge(N,M,A,B);

  rep(i,N) dp[i] = -1;
  dp[0] = 0;

  rep(t,K){
    rep(i,N) nx[i] = -1;
    
    rep(i,3){
      if( (i-C[D[t]])%%3 == 2 ) gain[i] = X;
      if( (i-C[D[t]])%%3 == 0 ) gain[i] = Y;
      if( (i-C[D[t]])%%3 == 1 ) gain[i] = 0;
    }

    rep(i,N) if(dp[i] >= 0) rep(j, g.es[i]){
      k = g.edge[i][j];
      nx[k] >?= dp[i] + gain[C[k]];
    }
    rep(i,N) if(dp[i] >= 0) nx[i] >?= dp[i] + gain[C[i]];
    
    rep(i,N) dp[i] = nx[i];
  }

  res = max(dp(N));
  wt(res);
}

Current time: 2021年09月28日21時40分12秒
Last modified: 2019年09月04日00時12分57秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: