码迷,mamicode.com
首页 > 其他好文 > 详细

【luogu P3366 最小生成树】 模板

时间:2018-03-04 13:05:48      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:pos   pac   style   mes   class   kruskal   space   color   最小   

这里是kruskal做法

当然prim也可以,至于prim和kruskal的比较:

Prim在稠密图中比Kruskal优,Kruskal在稀疏图中比Prim优。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int fa[200001];
 4 struct edge{
 5     int u;
 6     int v;
 7     int w;
 8 }e[200001];
 9 int cmp(edge a,edge b)
10 {
11     return a.w<b.w;
12 }
13 int find(int x)
14 {
15     return fa[x]==x?x:fa[x]=find(fa[x]);
16 }    
17 long long cnt=0;
18 long long ans=0;
19 long long n,m;
20 int main()
21 {
22 
23     cin>>n>>m;
24     for(int i=1;i<=n;i++)
25     fa[i]=i;
26     
27     for(int i=1;i<=m;i++)
28     cin>>e[i].u>>e[i].v>>e[i].w;
29     
30     sort(e+1,e+1+m,cmp);
31     
32     for(int i=1;i<=m;i++)
33     {
34         if(cnt==n-1)
35         break;
36         int x=find(e[i].u);
37         int y=find(e[i].v);
38         if(x!=y)            
39         {
40             ans+=e[i].w;
41             fa[y]=x;            
42             cnt++;
43         }            
44         
45         
46     }
47     if(cnt!=n-1)
48     {
49         cout<<"orz";
50         return 0;
51     }
52     cout<<ans;
53     return 0;    
54 }

 

【luogu P3366 最小生成树】 模板

标签:pos   pac   style   mes   class   kruskal   space   color   最小   

原文地址:https://www.cnblogs.com/MisakaAzusa/p/8504173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!