Codeforces Round #582 DIV3 G問題
Problem description
省略
省略
C++に変換後のコードはこちら
//no-unlocked
int N, T, A[2d5], B[2d5], C[2d5], Q[2d5];
int ind[2d5], sz[2d5];
ll res[2d5];
{
int i, j, k, m, t;
ll tmp = 0;
unionFind uf;
rd(N,T,(A--,B--,C)(N-1),Q(T));
sortA(N-1, C, A, B);
rep(i,T) ind[i] = i;
sortA(T, Q, ind);
uf.walloc(N);
uf.init(N);
rep(i,N) sz[i] = 1;
m = 0;
rep(t,T){
while(m < N-1 && C[m] <= Q[t]){
i = uf(A[m]);
j = uf(B[m]);
m++;
if(i==j) continue;
uf(i,j);
k = uf(i);
tmp += (ll)sz[i] * sz[j];
sz[k] = sz[i] + sz[j];
}
res[ind[t]] = tmp;
}
wt(res(T));
}
Current time: 2024年04月20日06時47分23秒
Last modified: 2019年09月01日00時52分22秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces CF582 CF_Div3_G
トップページに戻る
Logged in as: unknown user (not login)