Codeforces Round #592 DIV2 D問題 - Paint the Tree

Source

Codeforces Round #592 DIV2 D問題 (1750pt)
Problem description

問題概要

省略

解法

省略

cLayversion 20191027-1)のコード

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

//no-unlocked
int N, A[1d5], B[1d5], C[3][1d5];
int resi[1d5], deg[1d5], cnv[1d5];
{
  ll res = ll_inf, tmp;
  int ind[3] = {0,1,2};
  graph g;
  rd(N);
  rep(i,3) rd(C[i](N));
  rd((A--,B--)(N-1));
  rep(i,N-1) deg[A[i]]++, deg[B[i]]++;

  rep(i,N) if(deg[i] >= 3) wt(-1), return 0;
  rep(i,N) if(deg[i] == 1) break;
  g.setEdgeRootedTree(N,N-1,A,B,i,1,cnv);
  do{
    tmp = 0;
    rep(i,N) tmp += C[ind[i%3]][cnv[i]];
    if(tmp < res){
      res = tmp;
      rep(i,N) resi[cnv[i]] = ind[i%3] + 1;
    }
  }while(next_permutation(ind,ind+3));

  wt(res);
  wt(resi(N));
}

Current time: 2021年12月05日23時19分40秒
Last modified: 2019年11月02日02時58分26秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF592 CF_Div2_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: