首页 > TAG信息列表 > CF379F
[CF379F]New Year Tree
题目 传送门 题解 这道题必须对树的直径的一些基本性质了解很多。 首先,有一种暴力思路,对于每一次加进俩点之后,跑一次 \(bfs\) 或者是树 \(DP\) 求直径,这样时间复杂度是 \(\mathcal O(qn)\) 的,显然有问题。 考虑换一种思路,有一种贪心地求树直径的方法: 从树上任意一点 \(x\) 开始,找CF379F New Year Tree (树的直径)
CF379F New Year Tree 分析: 树的直径就是每次求树中最远的两个点。 在一棵树上快速计算两两点之间的距离,可以用倍增。 设现在树上最远的两个点为L和R。 若在u处加两个点,直径会+1或者不改变。 对这两个点求一下到L的距离,和到R的距离,看会不会使答案更优,如果使得答案更优,就把L,或R更CF379F New Year Tree
题面: 新年里,程序猿们往往会做一些有趣的事情。你则选择以往这棵树上加节点来取乐。 一个添加节点的操作是这样的: 1) 找到树上的一个叶子结点v 2)设现在树上有n个节点, 那么你现在会加入两个节点n+1和n+2,它们都会成为n的儿子.你的任务是在做q次这样的操作,并在每做完一次后计算一次