Solution - P6146 [USACO20FEB]Help Yourself G
P6146 [USACO20FEB]Help Yourself G
idea:
熟悉使用计数类问题的常用方法:设函数并通过分类讨论找到递推式,不需要多余的计算。
解决方案:
我们先按左端点给所有序号排序。
设 表示前 条线段的 种方案的复杂度总和。
现在考虑递推计算 。
假设现在加入第 条线段。有以下两种情形:
- 不选第 条线段。
答案是显然的: 。
- 选择第 条线段。
设第 条线段和之前的 条线段相交。当这 条线段被选择时,第 条线段不能产生贡献,其他情形贡献均为 。
故答案为: 。
是可以均摊 求得的。
故我们得到了递推式:
总时间复杂度 。用桶排加预处理 应该可以做到 。