大意:给你n个城市的坐标,再给你m条已经连起来的路,问你还有那些城市需要连起来并且路长最小。
思路:一眼就可以看出是最小生成树,但直接提交会超时,需要剪枝,这题剪枝的技巧在其他最小生成树的题也可以使用(ps:参考博客)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define maxn 800
using namespace std;
struct Edge{
int u,v;
float w;
}edge[maxn*maxn];
int n,m,cnt=0,tot=1;//tot记录已经连好的点
int s[maxn],x[maxn],y[maxn];
int find(int u){
return s[u]