传送门
这是一道困饶了我一年的题。
其实就是去年去NOIP提高组试水的时候考的模拟题
但当时我水平不够,跟
y
k
yk
yk一起杠了一个下午都没调出来。
今天终于
A
A
A了。
其实就是一个维护最长连续
01
01
01串的变形。
分几种情况讨论下就行。
我们令最长子段的左右端点为
l
,
r
l,r
l,r
- l = 1 l=1 l=1,直接停在 1 1 1号点。
- r = n r=n r=n,直接停在 n n n号点。
- 最长子段在中间,根据题目的定义,这个时候根据题目定义它的到两边的长度应该是 r − l + 2 2 \frac {r-l+2} 2 2r−l+2,而从令左端开始的连续 0 0 0长度为 L L L,右端开始的为 R R R,它们到附近第一辆车的长度为 L , R L,R L,R,因此我们需要比一比这三个亮的大小,这还没完,如果是 r − l + 2 2 \frac{r-l+2} 2 2r−l+2最大的话,我们需要寻找左端点下标最小且长度为 r − l + 1 r-l+1 r−l+1的一个区间,然后令其中点成为答案,因为虽然 l e n [ 3 , 3 ] < l e n [ 5 , 6 ] len[3,3]<len[5,6] len[3,3]<len[5,6],但它们距离最近一辆车的长度是相同的,因此要选 3 3 3而不是 5 5 5。