问题 6160 --作弊

6160: 作弊★★★

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

题目描述

聪明的你喜欢在网上下国际象棋。

最近,你共下了n盘棋,每一盘棋不是赢就是输(没有平局)。当你输了一盘棋时,你得0分。当你赢了一盘棋时,你可以得到1分或者2分,具体规则为:如果你在前一盘棋中也赢了,则这盘棋赢了你就可以得2分,否则你只能得到1分。如果你在第一盘棋中获胜,你将只能获得1(因为没有前一盘棋”)

n盘棋的比赛结果由长度为n的字符串s表示:如果你赢了第i盘棋,则s的第i个字符是W,如果你输了第i盘棋,则s的第i个字符是L。也就是说,W表示你赢了,L表示你输了。

比赛结束后,你注意到网站上有一个漏洞,允许你最多改变k场比赛的结果(意思是你最多可以k次将字符L改变为W,或W改变为L)。因为你的唯一目标是提高自己的国际象棋等级,所以你决定利用网站漏洞进行作弊,以便获得尽量多的分数。

     请问,你可以通过作弊方式获得的最大分数是多少?

输入

        第一行一个整数t(1≤t≤2e4):测试用例数;

        接下来共2t行,每个测试用例两行:

        第一行两个整数nk1≤n≤1e50≤k≤n):n为比赛场次数,k为最大作弊次数;

        第二行为一个仅由字符’W’和‘L’组成的,长度为n的字符串ssi=W’,表示第i场比赛赢了,si=L‘,则表示输掉了第i场比赛;

输出

t行,每行一个整数:通过作弊可以获得的最高比赛分数;

样例输入
Copy
8
5 2
WLWLL
6 5
LLLWWL
7 1
LWLWLWL
15 5
WWWLLLWWWLLLWWW
40 7
LLWLWLWWWLWLLWLWWWLWLLWLLWLLLLWLLWWWLWWL
1 0
L
1 1
L
6 1
WLLWLW
样例输出
Copy
7
11
6
26
46
0
1
6

提示

来源

 

[提交][状态]