#137 · painter-1aae5c

画家

Not startedHard
Time10.0 s
Memory1,024 MB
Submissions0
Acceptance0.0%
0%100%

Statement

你最近开始学习如何绘画,在其中一节课上你了解到了三原色:*红色*、*黄色*和*蓝色*。
如果你将这些颜色组合,就能产生更多颜色。
目前,你学过的组合如下:

- *红色* + *黄色* = *橙色*

- *红色* + *蓝色* = *紫色*

- *黄色* + *蓝色* = *绿色*

- *红色* + *黄色* + *蓝色* = *灰色*

你仍然不理解颜色的深浅,因此在组合中每种颜色的比例和顺序都不重要。
例如,组合 *红色* 和 *黄色* 得到的结果,与组合 *黄色* 和 *红色* 得到的结果相同,
也与再次组合 *红色*、*黄色* 和 *红色* 得到的结果相同。

为了练习你的技能,你想绘制一幅长度为 的一维画作 。
你的画作由 个方格组成。
从左到右, 表示第 i 个方格的颜色。
最初所有方格都是 *未上色*,也就是说,
对于每个 , = *未上色*。

在一次笔画中,你可以选择三种原色之一,并将其应用到一段连续的方格上。
换句话说,你可以选择一种颜色 和两个整数 与 ,
使得 ,
并将颜色 应用到所有满足 的方格 上。
如果被绘制的方格当前是 *未上色*,那么它的颜色将变为 。
否则,该颜色将是到目前为止应用到这个方格上的所有颜色与新颜色 的组合,
如上表所述。

为了节省时间,你想使用尽可能少的笔画。
给定你想要绘制的画作描述,
求出绘制它所需的最少笔画数。

Input

输入的第一行给出测试用例数 。接下来是 个测试用例。

每个测试用例以一行开始,其中包含一个整数 ,表示画作的长度。
接下来一行,会有一个长度为 的字符串 ,表示画作。
第 i 个字符表示方格 的颜色,根据以下列表:

- U = *未上色*

- R = *红色*

- Y = *黄色*

- B = *蓝色*

- O = *橙色*

- P = *紫色*

- G = *绿色*

- A = *灰色*

### 数据范围

- .
- .
- 将是 {Y, B, G} 中的一个。
- 将是 {U, R, Y, B, O, P, G, A} 中的一个。

Output

对于每个测试用例,按测试用例顺序逐个输出答案,输出一行,包含 $y$,
其中 是
绘制该画作所需的最少笔画数。

Examples

Example 1

Input

2
9
YYYBBBYYY
6
YYGGBB

Output

3
2
Example 2

Input

1
5
ROAOR

Output

3

Constraints

  • Time limit: 10000 ms
  • Memory limit: 1048576 KB
  • Tag: bit-manipulation
  • Tag: greedy
  • Tag: string

Loading language catalog...