正式初二了
https://jzoj.net/senior/#main/show/2936
想法:
1设tree[x][0/1]表示在以i为根的子树中,与i相连的点有[0,1]个敌人的情况下,砍树的最少代价
tree[x][0]+=min(tree[y][0],tree[y][1]+len[x,y]);
tree[x][1]=min{tree[x][0]-min(tree[y][0],tree[y][1]+len[i])+min(tree[y][0],tree[y][1])}
2最大生成树,判断每个并查集是否有敌人,再考虑合并(贪心)