#P16133. [ICPC 2018 NAIPC] Rainbow Graph
[ICPC 2018 NAIPC] Rainbow Graph
题目描述
Roy 和 Biv 有一个 个节点的无向图,节点编号为 。图中的每条边都有一个权重和一种颜色。权重是正整数。边的颜色恰好有三种:红色(Red)、绿色(Green)和蓝色(Blue)。同一对顶点之间可能存在多条边,图中甚至可能存在自环。
考虑如下任务(固定一个正整数 ):Roy 和 Biv 希望恰好选择图中的 条边,并删除所有其他边。他们希望这样选择后,仅凭所选出的 条边,两人都能看到整个图是连通的。
然而,问题在于:Roy 看不见红色边,Biv 看不见蓝色边。因此,他们选择边的方式必须满足:仅用蓝色边和绿色边就足以使所有节点连通,并且仅用红色边和绿色边也足以使所有节点连通。对于 从 到总边数的每个取值,求出满足上述条件的所有 条边的子集中,边权和的最小值。
输入格式
每个输入包含单个测试用例。请注意,你的程序可能会在不同输入上多次运行。每个测试用例的第一行包含两个整数 和 (),其中 是图中的节点数, 是边数。
接下来的 行,每行包含三个整数和一个字符:、()、()和 (),表示节点 和 之间有一条权重为 、颜色为 的边( 红色, 绿色, 蓝色)。
输出格式
输出 行,每行对应 的结果。如果对于某个 无法使 Roy 和 Biv 都看到图是连通的,则输出 ;否则,输出满足条件的选择 条边的子集的最小边权和。
5 8
1 5 1 R
2 1 2 R
5 4 5 R
4 5 3 G
1 3 3 G
4 3 5 G
5 4 1 B
1 2 2 B
-1
-1
-1
-1
15
14
17
22
提示
翻译由 DeepSeek V3.2 完成