深圳制作网站的公司简介,企业查询哪个好用,东莞大型网站建设,网站开发语言学习C 吗第一次看的时候想到了并查集#xff0c;但是不知道怎么实现#xff1b; 标解#xff0c;f[i]表示i所属的集合#xff0c;用f[in]表示i所属集合的补集#xff0c;实现的很巧妙#xff0c;可以当成一个使用并查集的巧妙应用#xff1b; 1 #includeiostream2 #incl…第一次看的时候想到了并查集但是不知道怎么实现 标解f[i]表示i所属的集合用f[in]表示i所属集合的补集实现的很巧妙可以当成一个使用并查集的巧妙应用 1 #includeiostream2 #includecstdio3 #includecstring4 #includecstdlib5 #includemap6 #includectime7 #includevector8 #includeset9 #includecmath
10 #includealgorithm
11 using namespace std;
12 const int maxn20200;
13 struct node{
14 int x,y,v;
15 bool operator(const node b)const{return vb.v;}
16 }e[120000];
17 int f[maxn1],n,m;
18 void init(){
19 scanf(%d%d,n,m);
20 for(int i1;im;i)scanf(%d%d%d,e[i].x,e[i].y,e[i].v);
21 sort(e1,em1);
22 }
23 void print(int x){coutxendl;exit(0);}
24 int getfather(int x){return f[x]x?x:f[x]getfather(f[x]);}
25 void work(){
26 for(int i1;i(n1);i)f[i]i;
27 int x,y;
28 for(int i1;im;i){
29 xgetfather(e[i].x);ygetfather(e[i].y);
30 if(xy)print(e[i].v);
31 else {f[x]getfather(e[i].yn),f[y]getfather(e[i].xn);}
32 }
33 print(0);
34 }
35 int main(){
36 init();
37 work();
38 } View Code 转载于:https://www.cnblogs.com/chadinblog/p/5854497.html