#P15576. [jag2024国内赛]桥梁建造计划 2
[jag2024国内赛]桥梁建造计划 2
题目描述
有 (N) 个小岛。国王收到了 (M) 条意见,每条意见要求在岛 (u_i) 与 (v_i) 之间建造一座无向桥。国王决定恰好建造这 (M) 座桥。
接下来要为每座桥分配建造公司。希望满足:
- 对于每个公司,即使该公司负责的所有桥全部不能通行,剩余桥仍能使所有岛互相连通;
- 在满足上述条件的前提下,实际委托的公司数量最少。
请输出一种满足条件的公司分配方案;若不存在,输出 -1。
输入格式
输入包含不超过 (40) 个数据集。
每个数据集格式如下:
N M
u1 v1
...
uM vM
(2\le N\le 150),(N-1\le M\le 1500)。
不存在自环和重边。输入图保证连通。
输入以 0 0 结束。
输出格式
对每个数据集:
- 若无解,输出一行
-1; - 否则输出两行:
- 第一行输出公司数量 (K);
- 第二行输出 (M) 个整数,第 (i) 个整数表示第 (i) 座桥由哪家公司负责,编号需在 (1) 到 (K) 之间。
若存在多个解,输出任意一个。
样例输入
3 3
1 2
2 3
1 3
3 2
1 2
1 3
4 5
1 2
2 3
3 4
4 1
1 3
0 0
样例输出
3
2 3 1
-1
3
2 3 2 1 1