设当前所有画了剪切标记的位置为若干点,再加上纸带的两个端点 1,n。 如果沿着这些位置把纸带剪开,那么得到的每一段纸带的长度,就是这些点按从小到大排序后,相邻两点的差值。
因此,题目本质上是在动态维护:
小蓝有一张长为 n−1 的纸带,纸带上等间距地印有 n 条刻度线,编号依次为 1∼n,相邻刻度线之间的距离均为 1。她依次进行 Q 次操作,操作分为两种:
所有询问均为假设,纸带不会被真正剪开,因此不会影响后续操作。
数据范围:3≤n≤109,1≤Q≤105,1≤k≤109。
第一行包含两个整数 n 和 Q。 接下来 Q 行,每行首先一个整数 op,表示操作类型。
对于每个第二种操作,输出一行,若存在长度不小于 k 的纸带段则输出 YES,否则输出 NO。
输入
5 6
2 4
1 3
2 2
2 3
1 3
2 2
输出
YES
YES
NO
YES
说明
初始纸带长度为 5−1=4,最大段长 4。询问 k=4,4≥4 满足,输出 YES。在刻度 3 处划线后,纸带被分为 [1,3] 和 [3,5] 两段,长度分别为 2 和 2,最大段长 2。询问 k=2,2≥2 满足,输出 YES;询问 k=3,最大段长 2<3,不满足,输出 NO。在刻度 3 再次划线,位置已有标记,切点不变,最大段长仍为 2,询问 k=2 满足,输出 YES。
输入
10 4
2 9
2 10
1 5
2 5
输出
YES
NO
YES
说明
初始纸带总长 10−1=9,最大段长 9。询问 k=9,9≥9 满足,输出 YES。询问 k=10,9<10,不满足,输出 NO。在刻度 5 处划线后,纸带被分为 [1,5] 和 [5,10] 两段,长度分别为 4 和 5,最大段长 5。询问 k=5,5≥5 满足,输出 YES。
输入
7 5
2 6
1 4
2 4
1 2
2 3
输出
YES
NO
YES
说明
初始纸带总长 7−1=6,最大段长 6。询问 k=6,6≥6 满足,输出 YES。在刻度 4 划线,纸带分为 [1,4](长 3)和 [4,7](长 3),最大段长 3。询问 k=4,3<4 不满足,输出 NO。在刻度 2 划线,此时切点为 2 和 4,纸带分为 [1,2](长 1)、[2,4](长 2)、[4,7](长 3),最大段长 3。询问 k=3,3≥3 满足,输出 YES。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册