题意:给定一棵n个点的树,要求将一条可以随意标号的链通过若干次操作变成这棵树 一次操作是指若v不为根且v的父亲不为根,则将v以及v的子树移到v的父亲的父亲上 要求给出标号方案,操作次数以及方案 n<=1e5 思路:考虑最小的操作次数,每一次操作可能使树的最大深度+1,事实上也存在这样的构造方案: 找到从根下来的最长链,找到深度最大的分叉点u,设最长链的后继为v,u的另一个儿子为w,则将v变成w的儿子 具体实现的时候可以用cnt记录当前节点上一个兄弟的最后一条链的深度 #include<bits…