这道题怎么做啊喂
  • 板块灌水区
  • 楼主小基耶萨YYDS
  • 当前回复23
  • 已保存回复23
  • 发布时间2021/10/15 19:31
  • 上次更新2023/11/4 03:44:36
查看原帖
这道题怎么做啊喂
556789
小基耶萨YYDS楼主2021/10/15 19:31

【题目描述】: 给你一个长度为n的字符串s,该字符串仅由字符0和1组成。

执行以下操作直到字符串为空:选择某个连续的相同字符的子串,将其从字符串中删除,剩余两部分按原顺序合并(其中任何部分都可以为空)。

例如:如果从字符串111110中删除子串111,则将获得字符串110。

删除长度为l的子串,将获得奖励a×l+b。

按上述操作直到字符串为空,你能获得总奖励的最大值是多少?

【输入描述】: 第一行一个正整数t(1≤t≤2000),表示测试组数;

每组数据输入两行,第一行三个整数n、a、b(1≤n≤1000;-100≤a,b≤100),如题意;

第二行输入一个长度为n的字符串s,s由0和1组成。

【输出描述】: 对于每个测试组输出一行一个整数,表示总奖励的最大值。

【样例输入】: 3 3 2 0 000 5 -2 5 11001 6 1 -4 100111

【样例输出】: 6 15 -2

【样例说明】: 第一组数据:一步将000删除,贡献2×3+0=6

第二组数据:一个一个删除字符,贡献5×(-2×1+5)=15

第三组数据:先删除00,再删除1111,贡献(1×2-4)+(1×4-4)=-2

【时间限制、数据范围及描述】: 时间:1s 空间:256M

对于20%的数据:1≤t≤2000;1≤n≤100;输入串全0,或全1。

对于50%的数据:1≤t≤2000;1≤n≤100;

对于100%的数据:1≤t≤2000;1≤n≤1000;

2021/10/15 19:31
加载中...