AtCoder Regular Contest 108 F問題 - Paint Tree

Source

AtCoder Regular Contest 108
問題文

問題概要

省略

解法

省略

cLayversion 20201121-1)のコード

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

int N, A[2d5], B[2d5];
graph g;
int d1[2d5], d2[2d5], mx[2d5], ind[2d5], c[2d5];
{
  int x, y, cur = 0, a, b;
  Modint res = 0, p;
  rd(N,(A--,B--)(N-1));
  g.setEdge(N,N-1,A,B);
  g.TreeDiameter(x, y);
  g.getDist(x, d1);
  g.getDist(y, d2);

  rep(i,N) ind[i] = i;
  rep(i,N) mx[i] = max(d1[i], d2[i]);
  rsortA(N, mx, ind);
  p = Modint(2) ** N;
  rep[ind](i,N) if(i!=x){
    a = min(d1[i], d2[i]);
    b = max(d1[i], d2[i]);
    (a, b) >?= cur;
    if(a==b){
      res += a * p;
      p = 0;
      break;
    }
    p /= 2;
    res += b * p;
    cur >?= a;
  }
  res += cur * p;
  wt(res);
}

Current time: 2021年09月28日06時24分22秒
Last modified: 2020年11月22日17時04分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Regular_Contest ARC108 ARC_F
トップページに戻る

Logged in as: unknown user (not login)

ログイン: