Constrained Tree 没写出来好菜啊啊. 首先根据输入我们能算出某些节点的左儿子的范围, 右儿子的范围(此时并不准确) 然后我们在划分u这个节点的时候我们从左右开始用树状数组check每一个点是否可行, 即这个点没有被覆盖, 因为左右同时开始所以复杂度是nlognlogn,以前做过这种从两头开始check的. 还有一种方法用线段树, 从n - > 1取更新每个点的准确范围,然后直接输出答案. 还有一种方法是dfs的过程中, 先给所子树划分一个区域, 这个区域可能是不对的,然后递归左子…