题解:P16545 [EGOI 2026] 狐狸家族 / Fox Families
拿线段树做了半天,鉴定为 ds 学傻了。
考虑将现有家族看作一个整体区间。
则对于一个新区间,可能被一个现有区间整体包含(或反过来包含现有区间)。
[___________________]
[____new____]
当然也有可能包含一个现有区间中的小区间。
[_________________]
[___]
[________new________]
不妨设单个家族的范围是
对于第二种情况,首先有
那对于一个新区间,如何查找可以合并的区间?
这堆判断条件不能用什么数据结构快速统计,只能一个一个判,因此考虑定一个判断顺序,使其有一个不合法的临界情况,可以直接在这里退出。
本人的考场思路太丑陋了,以下参考了 @Little_duck_GGG 佬的思路。
找找性质,考虑如下情况,我们假设
[______B______]
[______A______]
[_____new_____]
假设
故我们按照
向左也是一个道理,代码实现很简单。