分析

给你一棵树,求至少要几次操作,变化为一条链。我们知道无论变化多少次总度数一定不变 。而一条链的度数分布为 根据鸽巢原理,只要对于 的节点操作 次就可以了。总的复杂度为

代码

#include<bits/stdc++.h>
const int N = 3e5 + 1000;
int du[N],n,ans;
int main() {
    scanf("%d",&n);for(int i = 1,a,b;i < n;i++) scanf("%d%d",&a,&b),du[a]++,du[b]++;
    for(int i = 1;i <= n;i++) ans += du[i] > 2?du[i] - 2:0;printf("%d\n",ans);
}