小塔有一颗有n个节点的树,其中每个节点是红色或者黑色,她想知道,删除一个红色节点以及与它相连的全部边后,剩余连通快↓中黑色节点数量的最大值是多少。
↓:对于树上的两个点,如果它们相互连通,则称他们位于同一个连通快里;显然,在执行删除操作后,剩余部分至多构成两个连通块。
首先处理出树根为1时每个点子树内的黑色点数量。
考虑删除一个红色点,此时剩下的连通块中,只有其每个直接子节点与其父节点对应,而直接子节点内黑色节点的数量可以用过预处理子树黑色节点得到,那么就只需要获取父节点对应的连通块。
发现父节点对应的连通块实际上就是去点u所在子树剩下的节点,因此可以用总体黑色节点数量减去u内黑色节点数量得到。