请回答我的问题。我已经坚持了好几天了。
给定一个无向图,问题是用颜色 0、1 和 2 为其边着色,以使所有边的颜色总和最小。此外,对于每条着色为 0 的边,必须存在一条着色为 2 的相邻边。如果两条边共享公共顶点,则将它们视为相邻边。任务是找到给定图中边的最小颜色总和。我知道由于问题的性质我应该使用动态编程,但只是不知道如何使用。 算法是什么?
考虑将边作为一对顶点给出
例如,对于给定的边集:节点数:3,边数:3
1 2
2 3
1 3
输出为2。
或者对于以下输入:节点数:18,边数:27
1 2
1 4
1 6
3 2
3 4
3 6
2 5
4 5
7 8
7 10
7 12
9 8
9 10
9 12
8 11
10 11
13 14
13 16
13 18
15 14
15 16
15 18
14 17
16 17
5 11
12 17
18 6
输出为14