[ssfz联测] C. 零一串

[ssfz联测] C. 零一串

题目描述

给定一个长度为 nn 的 01 串,你需要将它划分成若干段,每一段的长度都不超过 mm,且满足以下两种条件之一:

  1. 这个段中全部为 00 或全部为 11.
  2. 这个段中 0,10,1 数量之差不超过 kk.

你需要求出该 01 串合法的划分最少要多少段。

输入格式

第一行输入三个整数 n,m,kn,m,k,分别表示 0101 串的长度,段的长度限制,条件 110,10,1 数量差的限制。

接下来一行,输入一个长度为 nn0101 串,表示该 0101 串。

输出格式

一行,输出一个正整数,最少划分段数。

样例 #1

样例输入 #1

5 4 1
01110

样例输出 #1

样例 #2

样例输入 #2

20 5 1
10111101010011000100

样例输出 #2

提示

样例 1 解释:

一种符合条件的划分方式是 (01,110).

数据范围:

subtask score nn kk 性质A
0 20 2×103\le 2 \times 10^3 n\le n 1
1 30 2×105\le 2 \times 10^5 n\le n 0
2 20 107\le 10^7 =0=0 0
3 30 107\le 10^7 n\le n 0

其中,性质 A 为:0101 串随机生成,每一位均有一半的概率为 00,一半的概率为 11.\
表中性质 A 一栏为 11 则表示数据满足该性质。

对于 100%100\% 的数据,满足 n,m,k107n,m,k \le 10^7

下发文件

ssfz联测 下发文件

信息

ID
1085
难度
9
分类
(无)
标签
(无)
递交数
1
已通过
1
通过率
100%
上传者

相关

在下列比赛中:

SSFZ联测 重现赛