CF1346B.Boot Camp
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
伯兰国立大学(BSU)正在举办一场编程训练营。训练营将持续 n 天,BSU 的讲师们计划在这些天内安排若干场讲座。
训练营中的某些天已经被安排为游览日,这些天不能安排讲座。为了防止参与者因学习编程而过度疲劳,每天的讲座数量不得超过 k1,并且任意连续两天的讲座总数不得超过 k2。
你能计算出在训练营期间最多可以安排多少场讲座吗?形式化地说,找到最大的整数 m,使得可以选择 n 个非负整数 c1,c2,…,cn(其中 ci 表示第 i 天安排的讲座数量),满足以下条件:
- c1+c2+⋯+cn=m;
- 对于每个游览日 d,有 cd=0;
- 对于每一天 i,有 ci≤k1;
- 对于每一对连续的天数 (i,i+1),有 ci+ci+1≤k2。
注意,某些非游览日也可以不安排讲座(即即使 i 不是游览日,也可能有 ci=0)。
输入格式
第一行包含一个整数 t(1≤t≤50),表示测试用例的数量。
接下来是 t 组测试数据,每组测试数据包含两行。第一行包含三个整数 n、k1、k2(1≤n≤5000;1≤k1≤k2≤200000)。
第二行包含一个长度为 n 的字符串 s,仅由字符 0 或 1 组成。如果 si=0,则第 i 天为游览日(这一天不能安排讲座);如果 si=1,则第 i 天不是游览日。
输出格式
对于每组测试数据,输出一个整数,表示最多可以安排的讲座总数 m。
输入输出样例
输入#1
4 4 5 7 1011 4 4 10 0101 5 3 4 11011 6 4 6 011101
输出#1
12 8 8 14
说明/提示
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?