#OIS1039. 简单的生成树问题

简单的生成树问题

题目描述

众所周知,生成树问题是数据结构课程(或离散数学)中的一道经典例题。

RT,现在有一个简单的生成树问题。

给你一个nn个点,mm条边的图,每条边权都有固定的权值ww。然后你现在的任务是求出该图的最小生成树。

当然,既然本题作为比赛中的一道,所以它的难度肯定不止简单的权值和问题。

请你输出最小生成树的权值和以及所有可能的最小生成树的边的并集

特殊的,如果该图不能生成一颗最小生成树,请输出1-1

输入格式

本题为多组输入,第一行输入一个TT,表示有TT组数据。

接下来TT组数据,每组数据第一行,输入两个数n,mn,m,表示有nn个点,mm条边。

接下来mm行,每行输入33个数u,v,wu,v,w,表示第ii条边的两个端点以及对应的边权。

数据保证,$T\in[10,50],n\in[1,2 \times 10^5],m\in[1,2 \times 10^5],w\in[1,10^9], \sum n \leq 2 \times 10^5$。

输出格式

输出TT行,对于每一组数据,第一行输出对应的权值和,接下来一行输出所有的边的编号(按输入顺序从小到大输出),每组数据输出完之后需换行。

样例

1
6 7
1 6 4
1 2 3
2 3 3
2 5 3
1 5 1
3 5 3
4 2 3
14
1 2 3 4 5 6 7
1
6 4
1 6 4
1 2 3
2 3 3
2 5 3
-1