洛谷P2330 [SCOI2005]繁忙的都市 kruskal
阿新 • • 發佈:2018-12-08
include pre pac https 父親 turn sort mes pro
傳送門
kruskal的模板題
#include<iostream> #include<algorithm> using namespace std; int n,m; struct pp { int from,to,w; }e[100005]; int ans; int par[100005];//並查集 bool cmp(pp a,pp b) { return a.w<b.w; } void init(int n) { for(int i=1;i<=n;i++)par[i]=i; } int find(int x) { if(x==par[x])returnx; return par[x]=find(par[x]);//x的父親指向樹根 } void unite(int x,int y) { x=find(x); y=find(y); if(x==y)return; par[x]=y; } bool same(int x,int y) { return find(x)==find(y); } void solve() { cin>>n>>m; init(n);//這句不能少!! ans=n-1; for(int i=1;i<=m;i++) { cin>>e[i].from>>e[i].to>>e[i].w; } sort(e+1,e+1+m,cmp); for(int i=1;i<=m;i++) { if(same(e[i].from,e[i].to)!=true) { n--;//聯通塊減一 unite(e[i].from,e[i].to); } if(n==1) { cout<<ans<<""<<e[i].w<<endl; return; } } } int main() { solve(); }
洛谷P2330 [SCOI2005]繁忙的都市 kruskal