Kyoto University Programming Contest 2019 E問題 - 根付き森二人用ゲーム

Source

Kyoto University Programming Contest 2019
問題文

問題概要

省略

解法

省略

cLayversion 20191027-1)のコード

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

int N, A[1d5], B[1d5];
graph g;
int dp[2][1d5];

{
  int k, cnt = 0;
  REP(rd_int()){
    rd(N);
    rep(i,N-1) A[i] = rd_int()-1, B[i] = i+1;
    g.setEdgeRootedTree(N,N-1,A,B);
    rrep(i,N){
      dp[0][i] = dp[1][i] = 0;
      if(g.es[i]==0) dp[1][i] = 1, continue;
      rep(j,g.es[i]){
        k = g.edge[i][j];
        if(dp[0][k]==0) dp[0][i] = 1;
        if(dp[1][k]==0) dp[1][i] = 1;
      }
    }
    if(dp[0][0]==0 && dp[1][0]==0) wt("Alice"), return 0;
    if(dp[0][0]==1 && dp[1][0]==0) cnt ^= 1;
  }
  wt(if[cnt, "Alice", "Bob"]);
}

Current time: 2021年09月28日23時20分41秒
Last modified: 2019年11月01日21時27分54秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: