#ABC240Ex. 子串序列

子串序列

子串序列

题目描述

给定一个长度为 NN、由 0011 组成的字符串 S=s1s2sNS = s_1 s_2 \ldots s_N

求最大的整数 KK,使得存在一个由 KK 对整数组成的序列 $\big((L_1, R_1), (L_2, R_2), \ldots, (L_K, R_K)\big)$,满足以下三个条件。

  • 对每个 i=1,2,,Ki = 1, 2, \ldots, K,有 1LiRiN1 \le L_i \le R_i \le N
  • i=1,2,,K1i = 1, 2, \ldots, K-1,有 Ri<Li+1R_i \lt L_{i+1}
  • 字符串 sLisLi+1sRis_{L_i}s_{L_i+1} \ldots s_{R_i} 严格字典序小于字符串 sLi+1sLi+1+1sRi+1s_{L_{i+1}}s_{L_{i+1}+1}\ldots s_{R_{i+1}}

输入格式

输入按以下格式从标准输入给出:

N
S

输出格式

输出答案。

样例

7
0101010
3

对于 K=3K = 3,一个满足条件的序列是 $(L_1, R_1) = (1, 1), (L_2, R_2) = (3, 5), (L_3, R_3) = (6, 7)$。 确实,s1=0s_1 = 0 严格字典序小于 s3s4s5=010s_3s_4s_5 = 010,且 s3s4s5=010s_3s_4s_5 = 010 严格字典序小于 s6s7=10s_6s_7 = 10

对于 K4K \ge 4,不存在满足条件的序列 $\big((L_1, R_1), (L_2, R_2), \ldots, (L_K, R_K)\big)$。

30
000011001110101001011110001001
9

数据范围

  • 1N2.5×1041 \le N \le 2.5 \times 10^4
  • NN 是整数。
  • SS 是由 0011 组成的长度为 NN 的字符串。
难度 NOI/NOI+/CTS
通过率
尝试 0
已通过 0
ID
2397
类型
传统题
Time Limit
687ms
Memory Limit
1024MiB
上传者
标签