P10298 [CCC 2024 S4] Painting Roads
题目描述
Kitchener 市的市长 Alanna 成功地改进了该市的道路规划。然而,来自 RedBlue 市的一位售货员仍然抱怨道路的颜色不够丰富。Alanna 的下一个任务就是粉刷一些道路。
Kitchener 市的道路规划可以表示为 $N$ 个十字路口和 $M$ 条道路,第 $i$ 条道路连接第 $u_i$ 个十字路口和第 $v_i$ 个十字路口。一开始所有道路都是灰色的。Alanna 想要把一些道路染成红色或者蓝色,满足以下条件:
- 对于每一条灰色道路,假设其连接十字路口 $u_i$ 和十字路口 $v_i$,一定存在一条从十字路口 $u_i$ 到十字路口 $v_i$ 的路径,满足路径上的道路颜色红色和蓝色交替出现,任何道路都不是灰色的。
为了降低城市的支出,Alanna 希望尽可能少地对道路进行染色。请帮助 Alanna 设计一个符合要求的染色方案。
输入格式
输入的第一行包含两个整数 $N$ 和 $M$($1\leq N, M \leq 2 \times 10^5$)。
接下来 $M$ 行中的第 $i$ 行包含两个整数 $u_i$ 和 $v_i$ 表示存在一条连接十字路口 $u_i$ 和十字路口 $v_i$ 的道路($1 \leq u_i, v_i \leq N$,$u_i \neq v_i$)。
任意两个十字路口之间至多存在一条道路。
输出格式
输出一个长度为 $M$ 的字符串,表示染色的方案。第 $i$ 个字符表示第 $i$ 条道路的颜色,`R` 表示红色,`B` 表示蓝色,`G` 表示灰色(未染色)。
注意你必须在满足条件的情况下最小化染色的道路数目。如果存在多个这样的染色方案,输出任意一个。
说明/提示
**【样例 1 解释】**
十字路口以及有效的道路的示意图如下所示,该方案最小化了染色道路的数量。请注意,每条道路上的颜色显示为 R(红色)、B(蓝色)或 G(灰色)。

所有为染色的道路都满足条件:
- 第二条路标记为 $G_2$ 连接了十字路口 $2$ 和 $4$,路径 $2, 1, 4$ 上的道路被染上红色、蓝色。
- 第三条路标记为 $G_3$ 连接了十字路口 $5$ 和 $2$,路径 $5, 4, 1, 2$ 上的道路被染上红色、蓝色、红色。
- 第五条路标记为 $G_5$ 连接了十字路口 $4$ 和 $3$,路径 $4, 1, 3$ 上的道路被染上蓝色、红色。
**【样例 2 解释】**
请注意 Kitchener 的道路可能不是连通的。
**【数据范围】**
**本题采用捆绑测试。**
对于所有数据,保证 $1\leq N, M \leq 2 \times 10^5$,$1 \leq u_i, v_i \leq N$,$u_i \neq v_i$。
下面的表格显示了 $15$ 分的分配方案:
| 分值 | 附加条件 |
| :-: | :- |
| $2$ | 对任意 $1 \leq i < N$ 存在一条连接 $i$ 和 $i + 1$ 的道路(还可能存在其他道路) |
| $3$ | 图连通并且 $N = M$ |
| $3$ | 任何道路都不同时属于至少两个简单环(见下文定义) |
| $7$ | 无 |
定义:若用 $u \leftrightarrow v$ 表示一条连接 $u$ 和 $v$ 的道路,则称 $k \geq 3$ 且所有 $w_i$ 互不相同是序列 $w_1 \leftrightarrow w_2 \leftrightarrow \cdots \leftrightarrow w_k \leftrightarrow w_1$ 为简单环。