QOJ.ac

QOJ

Limite de temps : 2.0 s Limite de mémoire : 1024 MB Points totaux : 100 Hackable ✓

#10983. 精美的花束

Statistiques

Universal Tropical Plant Center (UTPC) 拥有一片种植园,其中 $N$ 棵树从西向东排成一条直线,从西向东依次编号为 $1$ 到 $N$。

种植园即将进入一个为期 $K$ 天的收获期。在此期间,每棵树每天会开出一朵花,颜色为红、绿、蓝三种颜色之一。第 $i$ 棵树在 $K$ 天内的开花计划由字符串 $S_i$ 表示,其中第 $j$ 个字符 $S_{i,j}$ 表示第 $j$ 天开出的花朵颜色:'R' 代表红色,'G' 代表绿色,'B' 代表蓝色。

每天,所有已开出的花朵都会被采摘并分组为每组三朵的花束。一个有效的花束必须由三朵颜色相同的花,或者三朵颜色各不相同的花组成。理想情况下,采摘的花朵应该在没有剩余的情况下被分组成这样的花束。然而,这并不总是能够实现。

为了解决这个问题,UTPC 允许在收获期开始前对树木进行以下操作。每种操作可以执行任意次数,但每棵树最多只能被操作一次:

  • 选择一个整数 $i$ ($1 \le i \le N$) 并砍掉第 $i$ 棵树。这棵树将不会有花朵被采摘。
  • 选择一个整数 $i$ ($1 \le i \le N$) 并对第 $i$ 棵树使用生长加速剂。在该收获期内,这棵树每天会开出两朵花,颜色均为 $S_{i,j}$ 所指示的颜色。

收获期开始后不能再进行操作。

由于 UTPC 的办公室位于种植园的西侧,他们倾向于不对更靠东的树木进行操作。因此,一组操作的代价定义为被操作的树木中,最靠东的那棵树的编号。如果没有树木被操作,则代价为 $0$。

请确定确保在收获期的每一天,所有花朵都能在没有剩余的情况下被分组成有效花束所需的最小代价。注意,如果所有树木都被砍掉,则视为没有剩余花朵。

输入格式

输入格式如下:

$N \ K$ $S_1$ $S_2$ $\vdots$ $S_N$

  • $N$ 和 $K$ 为整数。
  • $1 \le N, K$。
  • $NK \le 10^5$。
  • $|S_i| = K$。
  • $S_i$ 中的每个字符均为 'R'、'G' 或 'B'。

输出格式

输出一个整数,表示确保在收获期的每一天都没有花朵剩余所需的最小代价。

样例

样例输入 1

4 5
RGBGR
BGGBR
RBGBR
RRRRR

样例输出 1

2

样例输入 2

3 3
RGB
BGG
GGR

样例输出 2

0

样例输入 3

3 4
GGGG
BGGG
GGGR

样例输出 3

3

样例输入 4

6 4
BGGB
BGGB
RGBG
RRRR
GGGG
BBBB

样例输出 4

3

说明

在第一个样例中,通过砍掉第二棵树,每天开出的花朵为:

  • 第 1 天:RRR
  • 第 2 天:GBR
  • 第 3 天:BGR
  • 第 4 天:GBR
  • 第 5 天:RRR

每天的花朵都可以被分组成有效的花束且没有剩余。代价为 $2$,且无法以代价 $1$ 实现该目标。

在第二个样例中,不需要进行任何操作,因此代价为 $0$。

在第三个样例中,必须砍掉所有树木才能满足条件。代价为 $3$。

在第四个样例中,通过对第 $1$ 棵树使用生长加速剂并砍掉第 $3$ 棵树,每天开出的花朵变为:

  • 第 1 天:BBBRGB
  • 第 2 天:GGGRGB
  • 第 3 天:GGGRGB
  • 第 4 天:BBBRGB

这些花朵每天都可以被分组成有效的花束。代价为 $3$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.