问题 6378 --帆帆听讲座

6378: 帆帆听讲座★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 55  解决: 33
[提交][状态][命题人:]

题目描述

2023年的暑假,锐拓准备举办一个编程新兵训练营。新兵训练营将持续n天时间,锐拓会邀请一些讲师在训练营期间为学生们开展一系列讲座。
本着劳逸结合的原则,新兵训练营期间会组织短途旅游等一系列活动,显然在这些活动期间讲座是无法举办的。同时,为了确保学生们不会对学习编程感到厌倦,每天的讲座数量不应超过k1场,连续两天的讲座数量不应超过k2场。
你能计算一下在新兵训练营期间最多可以开展多少场讲座吗?
请注意,可能会有一些没有讲座的非游览日,也就是说,即使那天不是旅游活动日也可以不举行讲座。

输入

第一行只有一个整数t(1≤t≤50):测试用例的数量。
接下来共2t行,每个测试用例2行:
第一行共三个整数n,k1和k2((1≤n≤5000; 1≤k1≤k2≤200000):n为训练营持续天数,k1为每天可以举办的讲座的最大场次数,k2为连续两天可以举办讲座的最大场次数。
第二行为一个长度为n,由0和1组成的字符串s(si=0表示第i天为旅游活动日,不安排讲座,si=1表示第i天为学习日,可以安排讲座)。

输出

共t行,每个测试用例一行一个整数:可以安排讲座的最大场次数。

样例输入
Copy
4
4 5 7
1011
4 4 10
0101
5 3 4
11011
6 4 6
011101
样例输出
Copy
12
8
8
14

提示

在第一个测试用例中,第1天举办5场讲座,第2天旅游,第3天、第4天共举办7场,合计:12场讲座。
在第二个测试用例中,第2天,第4天各举办4场讲座,合计:8场讲座。
在第三个测试用例中,第1天、第2天共举办4场,第3天旅游,第4天、第5天共举办4场,合计:8场讲座。
在第四各测试用例中,第1天旅游,第2天、第3天、第4天最大可以举办10场(4+2+4),可以满足相邻两条的讲座数量不超过6场,第5天休息,第6天举办4场,合计:14场讲座。

来源

 

[提交][状态]