zoj 1542 Network
来源:互联网 发布:数据分析介绍 编辑:程序博客网 时间:2024/06/04 20:08
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;struct data{ int u,v; int w;} e[15000+5];bool cmp(data a, data b){ return a.w<b.w;}int n,m,bin[5000];int Find(int x){ int s; for(s=x; bin[s]>=0; s=bin[s]); while(s!=x) { int t=bin[x]; bin[x]=s; x=t; } return s;}void Union(int x1,int x2){ int f1=Find(x1),f2=Find(x2); int t=bin[f1]+bin[f2]; if(bin[f1]>bin[f2]) { bin[f1]=f2; bin[f2]=t; } else { bin[f2]=f1; bin[f1]=t; }}int main(){ int i,j,num,u,v,ans[1000+24],maxe; while(~scanf("%d%d",&n,&m)) { if(n==0) break; for(i=0; i<=n; i++) bin[i]=-1; for(i=0; i<m; i++) scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].w); sort(e,e+m,cmp); num=0; maxe=0; for(i=0; i<m; i++) { u=e[i].u; v=e[i].v; if(Find(u)!=Find(v)) { ans[num]=i; Union(u,v); num++; maxe=max(maxe,e[i].w); } if(num>=n-1) break; } printf("%d\n",maxe); printf("%d\n",num); for(i=0; i<num; i++) { printf("%d %d\n",e[ans[i]].u,e[ans[i]].v); } } return 0;}
0 0
- zoj 1542 Network【kruskal】
- ZOJ 1542 Network
- zoj 1542 Network
- ZOJ 1542 Network
- ZOJ - 1542 Network
- zoj 1542 Network
- ZOJ 1542 Network(裸MST)
- POJ 1861/ZOJ 1542 Network
- ZOJ 1542 / POJ 1861 Network (kruskal )
- 【最小生成树】 ZOJ 1542 Network
- ZOJ 1586 QS Network
- zoj 1914 Arctic Network
- ZOJ 1586 QS Network
- zoj 2676 Network Wars
- zoj 1586 QS Network
- ZOJ 1586 QS Network
- ZOJ 3604 Tunnel Network
- ZOJ-1586-QS Network
- Oracle 替换字符串
- 关于position:absolute、relative及fixed浅析
- Css样式表和input框
- 开始刷leetcode day72:Binary Tree Postorder Traversal
- MySQL引擎之一infobright
- zoj 1542 Network
- 优化Direct3D中多流(Multistreaming)的资源分配
- iOS开发之沙盒机制(SandBox)
- OC的单例模式的实现
- 链式队列
- Ajax-表单传值
- Persist Security Info=False是干什么的
- CentOS/Redhat:手动配置IP地址(命令和图形界面)
- Cookie,Session,Application区别与用法