ZOJ1542 POJ1861
2013-07-29 15:13
197 查看
题意:给你N个点M条边,求最小生成树,并且输出最小生成树里最大的那条边,并且输出路径
View Code
#include <iostream> #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> using namespace std; #define N 1005 #define M 15005 int father ,rank ,n,m,sum,MAX,num; int NUM ; struct Edge { int u; int v; int w; }edge[M]; bool cmp(Edge a,Edge b) { return a.w < b.w ; } void Init() { for(int i=0; i<=n; i++) { father[i] = i; rank[i] = 1; } } int find(int x) { if(father[x] != x) { father[x] = find(father[x]); } return father[x] ; } void merge(int x,int y) { int xf = find(x); int yf = find(y); if(rank[xf] > rank[yf]) { rank[xf] += rank[yf]; father[yf] = xf; } else { rank[yf] += rank[xf]; father[xf] = yf; } } void Kruskal() { num = 0; MAX=0; for(int i=0; i<m; i++) { int u = edge[i].u; int v = edge[i].v; if(find(u) != find(v)) { NUM[num] = i; num++ ; sum += edge[i].w; MAX = max(MAX,edge[i].w); merge(u,v); } if(num == n-1) break; } } int main() { while(scanf("%d%d",&n,&m)!=EOF) { Init(); for(int i=0; i<m; i++) { scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].w); } sort(edge,edge+m,cmp); sum = 0; Kruskal(); printf("%d\n",MAX); printf("%d\n",num); for(int i=0; i<num; i++) { printf("%d %d\n",edge[NUM[i]].u,edge[NUM[i]].v); } } return 0; }
View Code
相关文章推荐
- ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
- ZOJ 1542 poj 1861 Network(并查集+最小树)
- zoj1542||poj 1861(简单-MST)
- ZOJ 1542 poj 1861 Network(并查集+最小树)
- ZOJ 1542 POJ 1861 Network 网络 最小生成树,求最长边,Kruskal算法
- POJ 1861||ZOJ1542 kruskal求最小生成树(POJ秒杀啊)
- zoj 1542 || poj 1861 Network(MST = = Kruskal~)
- POJ 1861||ZOJ1542 kruskal求最小生成树(POJ秒杀啊)
- network 最小生成树 Kruskal 算法 poj 1861 zoj 1542
- POJ 1861/ZOJ 1542 Network
- POJ 1861 & ZOJ 1542 Network(最小生成树之Krusal)
- POJ 1861 && ZOJ 1542--Network 【最小生成树 && kruscal && 水题】
- (POJ 1151,HDU 1542,ZOJ 1128) Atlantis
- Network POJ 1861 ZOJ 1542 Kruskal算法 提问方式有点变化而已
- ZOJ 1542 / POJ 1861 Network (kruskal )
- poj1861 Network
- 《网络流学习笔记03&&POJ1459 &&ZOJ 1734 Power Network(多源点,多汇点)》
- zoj 1338 || poj 1492 Up and Down Sequences
- ZOJ-1025(POJ-1065、HDU-1051) Wooden Sticks
- poj 1979 zoj 2165 Red and Black 深搜做法