思路
这道题我们可以从kruskal的本质着手。
我们kruskal的过程是不断合并连通块,当然每个连通块都是已经合并好的最优连通块。
这个时候我们可以把输入的最优连边当做最小生成树的边,
然后把其他边全部连成最优边边权加一,这样就可以保证连出来的完全图满足唯一最小生成树且边权和最小。
代码
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
long long n,f[100010],v[100010],ans;
struct node
{
long long s,t,d;
}a[100010];
bool