4170 - 最大增益

题目描述

某精密电子元器件的自动化封装流水线上,有 N 个待检测的元器件排成一列。每个元器件具有正向(记为 R)或反向(记为 L)两种安装极性。

为了确保电流能够正常导通,系统对“有效导通对”的定义如下:对于第 i 个元器件(1 \le i \le N),若其安装极性与它左侧紧邻的第 i-1 个元器件极性完全一致,则这两个元器件之间可以形成一个“有效导通点”。

具体规则说明:

  1. 若第 i 个元器件极性为 L,且第 i-1 个元器件极性也为 L,则第 i 个位置产生 1 个单位的导通增益。
  2. 若第 i 个元器件极性为 R,且第 i-1 个元器件极性也为 R,则第 i 个位置产生 1 个单位的导通增益。
  3. 序列尾部最后一个元器件,若无对应方向的邻接元器件(即:序列中只有一个元器件),则无法产生导通增益。

由于初始安装过程中存在极性偏差,部分位置无法导通。工程师现有一种极性翻转装置,可以执行以下操作:

  • 极性翻转操作:选择序列中一段连续的区间 [l, r]1 \le l \le r \le N),将该区间内所有元器件的极性进行同步反转(即 L 变为 RR 变为 L)。

该操作最多可以执行 K 次。请计算经过优化处理后,全线最多能产生的总导通增益。

即:使 \sum_{i=2}^{N} [S_i = S_{i-1}](其中 [P] 表示当条件 P 成立时取值为 1,否则为 0)最大。

输入

第一行包含两个正整数 NK,分别表示元器件的总数和允许进行极性翻转操作的最大次数。

第二行包含一个长度为 N 且仅由字符 LR 组成的字符串 S,表示初始的极性序列。

输出

输出一个整数,表示在执行不超过 K 次操作后,流水线上最多能获得的导通增益总数。

样例

输入

6 1
LRLRRL

输出

3

输入

15 2
LRRLRLRRLRLLRLL

输出

8

输入

10 2
LLLLLRRRRR

输出

9
说明

样例说明 1

初始序列为 LRLRRL。导通点分布如下:第 4 位 R 与第 5 位 R 极性一致,第 5 位产生 1 个增益,初始总增益为 1。

执行一次翻转操作,选择区间 [2, 2](将第 2 位 R 翻转为 L),序列变为 LLLRRL

此时第 2、3 位指向前方的 L,第 5 位指向前方的 R,总增益为 1+1+1 = 3

数据范围

测试点编号N, K
1 \sim 21 \le N \le 10, K = 1
3 \sim 41 \le N \le 20, 1 \le K \le 5
5N=1, 1 \le K \le 10^5
6 \sim 251 \le N \le 10^5, 1 \le K \le 10^5

对于 100\% 的数据,满足 1 \le N \le 10^5, 1 \le K \le 10^5

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 4 枚
难度 基础


上一题 下一题