【bzoj2811】[Apio2012]Guard

2015年4月24日1,86313

Description

Input

Output

Sample Input

5 3 4
1 2 1
3 4 1
4 4 0
4 5 1

Sample Output

3
5

HINT

在这个样例中,有两种可能的安排方式:1,3,5 或者 2,3,5。即 3 和 5
后面必然躲着一个忍者。
考虑第一个灌木丛,存在一种安排方案使得它的后面躲着忍者,但也存在一
种安排方案使得它后面没有躲忍者,因此不应该输出 1。同理,不应该输出 2。

题解

首先先将0的区间去除,可以用线段树T T

如果去除0剩下的坐标编号等于忍者数,则所有剩下的坐标都要放忍者

重标号后再将有包含其他区间的区间去除

贪心求出F[i]表示前i个区间的最少要放的忍者数(从左到右没有忍者的区间在右端点放一个),G[i]表示后i个区间。。。

然后依次考虑每个区间,如果它的右端点x需要放一个忍者,考虑能否在x-1放

二分出覆盖x的区间范围l-r

若F[l-1]+G[r+1]+1>K则x一定要放忍者

 

  1. Pingback: 肉牛