动笔之前多想想可以节约很多时间 想象一下删掉某条边会会发生什么 就是把以为根的子树砍掉,此时满足子树内的权值是树的三分之一 但是砍掉时候,的祖先们就不能利用这些权值了,所以设置为0 就这样一遍回溯就可以解决 亏我还想了那么久......彩笔 #include <bits/stdc++.h> using namespace std; const int maxn=2e6+10; int f[maxn],root,a[maxn],su,c[maxn]; int ans,q,w; struct edge{ int to,nxt; }d[maxn]; int head[maxn],...