#P10298. [CCC 2024 S4] Painting Roads

[CCC 2024 S4] Painting Roads

题目描述

Kitchener 市的市长 Alanna 成功地改进了该市的道路规划。然而,来自 RedBlue 市的一位售货员仍然抱怨道路的颜色不够丰富。Alanna 的下一个任务就是粉刷一些道路。

Kitchener 市的道路规划可以表示为 NN 个十字路口和 MM 条道路,第 ii 条道路连接第 uiu_i 个十字路口和第 viv_i 个十字路口。一开始所有道路都是灰色的。Alanna 想要把一些道路染成红色或者蓝色,满足以下条件:

  • 对于每一条灰色道路,假设其连接十字路口 uiu_i 和十字路口 viv_i,一定存在一条从十字路口 uiu_i 到十字路口 viv_i 的路径,满足路径上的道路颜色红色和蓝色交替出现,任何道路都不是灰色的。

为了降低城市的支出,Alanna 希望尽可能少地对道路进行染色。请帮助 Alanna 设计一个符合要求的染色方案。

输入格式

输入的第一行包含两个整数 NNMM1N,M2×1051\leq N, M \leq 2 \times 10^5)。

接下来 MM 行中的第 ii 行包含两个整数 uiu_iviv_i 表示存在一条连接十字路口 uiu_i 和十字路口 viv_i 的道路(1ui,viN1 \leq u_i, v_i \leq Nuiviu_i \neq v_i)。

任意两个十字路口之间至多存在一条道路。

输出格式

输出一个长度为 MM 的字符串,表示染色的方案。第 ii 个字符表示第 ii 条道路的颜色,R 表示红色,B 表示蓝色,G 表示灰色(未染色)。

注意你必须在满足条件的情况下最小化染色的道路数目。如果存在多个这样的染色方案,输出任意一个。

5 7
1 2
2 4
5 2
4 5
4 3
1 3
1 4

BRGBBGG

4 2
1 2
3 4

BB

提示

【样例 1 解释】

十字路口以及有效的道路的示意图如下所示,该方案最小化了染色道路的数量。请注意,每条道路上的颜色显示为 R(红色)、B(蓝色)或 G(灰色)。

所有为染色的道路都满足条件:

  • 第二条路标记为 G2G_2 连接了十字路口 2244,路径 2,1,42, 1, 4 上的道路被染上红色、蓝色。
  • 第三条路标记为 G3G_3 连接了十字路口 5522,路径 5,4,1,25, 4, 1, 2 上的道路被染上红色、蓝色、红色。
  • 第五条路标记为 G5G_5 连接了十字路口 4433,路径 4,1,34, 1, 3 上的道路被染上蓝色、红色。

【样例 2 解释】

请注意 Kitchener 的道路可能不是连通的。

【数据范围】

本题采用捆绑测试。

对于所有数据,保证 1N,M2×1051\leq N, M \leq 2 \times 10^51ui,viN1 \leq u_i, v_i \leq Nuiviu_i \neq v_i

下面的表格显示了 1515 分的分配方案:

分值 附加条件
22 对任意 1i<N1 \leq i < N 存在一条连接 iii+1i + 1 的道路(还可能存在其他道路)
33 图连通并且 N=MN = M
任何道路都不同时属于至少两个简单环(见下文定义)
77

定义:若用 uvu \leftrightarrow v 表示一条连接 uuvv 的道路,则称 k3k \geq 3 且所有 wiw_i 互不相同是序列 $w_1 \leftrightarrow w_2 \leftrightarrow \cdots \leftrightarrow w_k \leftrightarrow w_1$ 为简单环。