CF1427B Chess Cheater
题目描述
你喜欢在线参加国际象棋锦标赛。
在你最近的一次锦标赛中,你总共下了 $n$ 局棋。对于本题而言,每一局棋的结果要么是胜利,要么是失败(没有平局)。如果你输了这一局,你得 $0$ 分。如果你赢了这一局,你可以获得 $1$ 或 $2$ 分:如果你上一局也赢了,这一局你得 $2$ 分,否则你得 $1$ 分。如果你赢的是锦标赛的第一局,你只能得 $1$ 分(因为没有“上一局”)。
这 $n$ 局棋的结果用一个长度为 $n$ 的字符串 $s$ 表示:第 $i$ 个字符为 W 表示你赢了第 $i$ 局,为 L 表示你输了第 $i$ 局。
赛后,你发现网站有一个漏洞,允许你最多修改 $k$ 局棋的结果(即最多 $k$ 次将某个 L 改为 W,或 W 改为 L)。由于你唯一的目标是提升你的国际象棋等级分,你决定作弊并利用这个漏洞。
请计算在最优作弊方式下,你最多能获得多少分。
输入格式
每个测试点包含多个测试用例。第一行包含一个整数 $t$($1\le t \le 20\,000$)——表示测试用例的数量。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 $n, k$($1\le n\le 100\,000$,$0\le k\le n$)——表示下了 $n$ 局棋,以及你最多可以修改的局数。
第二行包含一个长度为 $n$ 的字符串 $s$,仅包含字符 W 和 L。如果你赢了第 $i$ 局,则 $s_i$ 为 W,否则为 L。
保证所有测试用例中 $n$ 的总和不超过 $200\,000$。
输出格式
对于每个测试用例,输出一个整数,表示在最优作弊方式下你能获得的最大分数。
说明/提示
第一个测试用例的解释:在不修改任何结果的情况下,得分为 $2$。你赢了第一局,得 $1$ 分,第三局也赢了,得 $1$ 分(不是 $2$ 分,因为第二局输了)。
最优的作弊方式是将第二局和第四局的结果修改。这样,你前四局都赢了(结果字符串变为 WWWWL)。新的得分为 $7=1+2+2+2$:第一局 $1$ 分,第二、三、四局各 $2$ 分。
第二个测试用例的解释:在不修改任何结果的情况下,得分为 $3$。你赢了第四局,得 $1$ 分,第五局也赢了,且上一局也赢了,所以再得 $2$ 分。
最优的作弊方式是将第一、二、三和第六局的结果修改。这样,你每局都赢了(结果字符串变为 WWWWWW)。新的得分为 $11=1+2+2+2+2+2$:第一局 $1$ 分,其余每局各 $2$ 分。
由 ChatGPT 4.1 翻译