CF1179D题解
先考虑一棵基环树上有多少条简单路径,设环上有
要最大化
在原树中,两个点之间连一条边,这条新边就和两个点之间的简单路径形成了一个环,我们称该路径被这条新边覆盖了。对于一个被覆盖的点它既不是叶子节点,也不是新边两端点的LCA,那么它一定能向下扩展一个节点直到叶子节点,使得答案更优,这不难理解。也就是说,连的新边的两个端点一定是树上的叶节点(度为1的点)。
令
其中
有了
这样做的时间复杂度是
将上式展开,有
发现可以套用斜率优化。具体地,将点
然后就做完了。
先考虑一棵基环树上有多少条简单路径,设环上有
要最大化
在原树中,两个点之间连一条边,这条新边就和两个点之间的简单路径形成了一个环,我们称该路径被这条新边覆盖了。对于一个被覆盖的点它既不是叶子节点,也不是新边两端点的LCA,那么它一定能向下扩展一个节点直到叶子节点,使得答案更优,这不难理解。也就是说,连的新边的两个端点一定是树上的叶节点(度为1的点)。
令
其中
有了
这样做的时间复杂度是
将上式展开,有
发现可以套用斜率优化。具体地,将点
然后就做完了。