题目大意:
在一棵树中,找出满足条件的点对 , 数量,使从 能走到 ,其中任意时刻,满足点权之和大于等于边权之和。
算法分析:
看题目的描述,很明显是一道点分治的题目。关键在于如何去维护答案。
这道题是我们的模拟赛题,考场上打了一个假到不能再假的点分治,一分没有。
先来模拟一下点分治的过程:首先找到 ,对于根为 的这棵树进行操作,最后把 删掉。
那么这道题,很自然的难点,就是如何对这棵树进行操作,我们一步一步看。
首先, 和 要在 的两棵不同的子树中,最后统计答案的时候,把 和 在一棵子树的情况给删掉就行。
关键操作:把 到 的路径,分为 到 和 到 。我们用两个数组