对于一个区间
[
l
,
r
]
[l,r]
[l,r],我们最多查询
m
i
n
(
l
,
1
e
4
)
min(l,1e4)
min(l,1e4)个数,一开始只能够查询一个数(避免个数太多),显然如果查询出来是在
m
i
d
+
1
mid+1
mid+1后,我们之后可以使用的个数就更多了,因此感受一下第一次操作前一半很短,后一半很长,关键是怎么求出这个长度。
不难想到一个dp,计
f
[
l
]
[
c
]
f[l][c]
f[l][c]为以
l
l
l为区间左端点,查询
c
c
c层,最大能够满足的右端点是什么,而对于
l
>
1
e
4
l>1e4
l>1e4的全部都与
1
e
4
1e4
1e4相同。
算出来发现
f
[
1
]
[
5
]
f[1][5]
f[1][5]就是那个大数(刚好就是上界)。