Luogu6556 The Forest
题意:有
问有多少个灯泡的子集,在红色树上形成连通块,在蓝色树上形成一条链。
多组数据,
前置知识:换根子树加。
引理:树上点集形成的连通块数目
点数 内部边数。 推论:树上点集形成连通块
点数 边数 。
类似于序列扫描线,考虑换根:(蓝树)记当前根为
记
假设根从
侧的点 :蓝路径减少了点 ; 侧的点 :蓝路径增加了点 。
点数的变化是两个子树加减,容易处理。
考虑边的变化,对于添加了点
暴力枚举的复杂度是红度数
在对
复杂度