作者:@Cobub | 来源:互联网 | 2023-06-07 20:13
题目:
思路:
只要算出需要连接几条边应该就没问题了
#include
#include
#include
#include
#include
#include
#include
#define maxn 1111
using namespace std;
int n,m,k,u,v,w;
int fa[maxn];
struct edge
{int x,y,z;bool operator<(const edge &e1)const{return z<e1.z;}
}e[maxn*maxn];
int getfa(int x)
{return (x&#61;&#61;fa[x])?x:(fa[x]&#61;getfa(fa[x]));
}
void merge(int x,int y)
{int xx&#61;getfa(x),yy&#61;getfa(y);if (xx&#61;&#61;yy) return;fa[xx]&#61;yy;
}
int main()
{cin>>n>>m>>k;int ans&#61;0,cnt&#61;0;for (int i&#61;1;i<&#61;n;i&#43;&#43;) fa[i]&#61;i;for (int i&#61;1;i<&#61;m;i&#43;&#43;) {cin>>u>>v>>w;e[i]&#61;{u,v,w};}sort(e&#43;1,e&#43;m&#43;1);