#P10000. cats 的最小生成树
cats 的最小生成树
cats 的最小生成树
Problem Description
cats 有一个有 个点, 个边的可能有重边的无向图。边有边权,其中第 条边的边权为 。 在一次操作中,cats 会找出这个图的最小生成树,然后将图中所有属于最小生成树的边移除。cats 会不断重复以上操作直到图不连通为止。 现在,你需要告诉 cats 图中的每一条边是在第几次操作中被移除的。若一条边在操作结束时未被移除,你需要输出 。 可以证明在以上条件下,cats 每次选择的最小生成树一定是唯一的。 注:一个有 个点的图的最小生成树即为这个图的所有的包含全部 个点和刚好 条边的连通子图中使子图所有边的边权总和最小的子图。
Input
第一行一个整数 ,表示测试数据的组数。 每组测试数据的第一行包含两个整数 ,表示图中点和边的个数。 接下来 行,每行两个整数 ,表示第 条边连接的两个点。第 条边的边权为 。 保证所有测试数据的 之和不超过 ,保证所有测试数据的 之和不超过 。
Output
对于每组测试数据,输出一行 个整数。对于第 个数,若第 个边在第 次操作中被移除,你需要输出 。若第 个边在操作结束时未被移除,你需要输出 。
Sample Input
3
3 3
1 2
2 3
3 1
3 3
1 2
2 1
2 1
4 6
1 2
1 2
1 3
2 3
1 4
3 4
Sample Output
1 1 -1
-1 -1 -1
1 2 1 2 1 2
Source
2024“钉耙编程”中国大学生算法设计超级联赛(8)