AtCoder Regular Contest 108
問題文
省略
省略
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: 2024年04月18日05時41分44秒
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)