HDU 1879 继续畅通工程 最小生成树-Kruskal
来源:互联网 发布:织梦cms如何安装 编辑:程序博客网 时间:2024/04/29 14:55
题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1879
标准的最小生成树,不用什么其他思想就可以AC,直接上代码。
代码如下:注释很清晰相信都能懂
#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <string>#include <algorithm>#include <vector>#include <set>#include <map>#include <queue>#include <stack>using namespace std;/*freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);*/int n,m;//n个点,总共有m跳边,单向边int parent[105];//父亲节点struct se{ int x,y,w;}edge[5055];bool emp(se a,se b){ return a.w<b.w;}void UFset(){ for(int i=0;i<=n;i++) parent[i]=i;}int find(int x){ int r=x; while(x!=parent[x]) x=parent[x]; while(r!=x)//剪枝优化 { int j=parent[r]; parent[r]=x; r=j; } return x;}void Kruskal(){ int i,j,count=0,sum=0; UFset();//初始化父亲节点 for(i=0;i<m;i++) { int fx=find(edge[i].x);//x的根节点 int fy=find(edge[i].y);//y的根节点 if(fx!=fy)//两个根节点不相同代表不在一个集合里面,就合并 { count++; parent[fx]=fy; sum+=edge[i].w; if(count==n-1) break; } } printf("%d\n",sum);}int main(){ int i,j; while(cin>>n,n) { m=0; int sum=n*(n-1)/2; for(i=1;i<=sum;i++) { int a,b,t,d; scanf("%d%d%d%d",&a,&b,&t,&d); if(a>b)//保证a<b swap(a,b); edge[m].x=a; edge[m].y=b; if(d==0) edge[m].w=t; else//已经建成的w置为0 edge[m].w=0; m++; } sort(edge,edge+m,emp);//边从小到大排序 Kruskal(); } return 520;}
- HDU 1879 继续畅通工程(最小生成树 Kruskal算法)
- HDU 1879 继续畅通工程 最小生成树-Kruskal
- HDU 1879--继续畅通工程【kruskal && 最小生成树 && 水题】
- hdu 1879 继续畅通工程 最小生成树kruskal
- HDU 1879 继续畅通工程(最小生成树Kruskal)
- HDU 1879 继续畅通工程(最小生成树 Kruskal)
- HDU 1879 继续畅通工程(最小生成树-Kruskal)
- HDOJ 1879 继续畅通工程(最小生成树--kruskal)
- 杭电 1879 继续畅通工程【最小生成树&&Kruskal】
- HDOJ 1879 继续畅通工程 最小生成树 kruskal && prim
- 【最小生成树+kruskal】杭电 hdu 1879 继续畅通工程
- HDU - 1879 - 继续畅通工程 (最小生成树之kruskal算法!!)
- HDU 1879 继续畅通工程(Kruskal求最小生成树)
- 继续畅通工程 hdu 最小生成树
- hdoj 继续畅通工程 Kruskal算法实现最小生成树
- hdu1879(Kruskal最小生成树)--继续畅通工程
- hdu1879 继续畅通工程 (kruskal求最小生成树)
- HDU1879 继续畅通工程 【图论】【最小生成树】【Kruskal】
- c# mutex使用示例
- 《软件测试经验与教训》读书笔记(五)
- 魔方问题
- 菜刀 下载链接
- jpa 的动态插入和动态更新
- HDU 1879 继续畅通工程 最小生成树-Kruskal
- 数据库版本控制问题
- HTML5中canvas的使用介绍
- 清洁眼镜的正确方法
- 2013年02月04日 工作总结
- Ogre 1.9 Android移植
- 开发学习笔记
- C++中实现Singleton的正确方法
- [Android实例] 关于webview如何自动登录保存登录信息