hdu 1233 kruskal + 并查集
来源:互联网 发布:带着淘宝去古代txt 编辑:程序博客网 时间:2024/06/02 04:51
//构建的图为无向图#include <iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxe=5000+5; //最大边数const int maxv=100+5; //最大顶点数int n; //n为最小生成树中的顶点struct Edge{int from,to;int weight;};bool operator<(const Edge&E1,const Edge&E2){ return E1.weight<E2.weight;}Edge edges[maxe];int vset[maxv];int e; //构成最小生成树所需要的边数int Getparent(int i){ if(i!=vset[i]) vset[i]=Getparent(vset[i]); return vset[i];}void kruskal(int num) //从num条路径中选取e条路径完成生成树{ int sum=0; for(int j=1;j<=num;j++) { int p1=Getparent(edges[j].from); int p2=Getparent(edges[j].to); if(p1!=p2) { sum+=edges[j].weight; vset[p2]=p1; e--; } } cout<<sum<<endl;}int main(){ while(scanf("%d",&n)==1&&n) { e=n-1; for(int i=1;i<=n;i++) //使用并查集 vset[i]=i; int num=(n*(n-1))/2; for(int i=1;i<=num;i++) { int v1,v2,dist; scanf("%d%d%d",&v1,&v2,&dist); edges[i].from=v1; edges[i].to=v2; edges[i].weight=dist; } sort(edges,edges+num+1); kruskal(num); } return 0;}
阅读全文
0 0
- hdu 1233 kruskal + 并查集
- HDU 1863 并查集+Kruskal
- hdu 1598 并查集,kruskal
- kruskal+ 并查集
- Kruskal+并查集
- Kruskal + 并查集
- HDU 3938 Portal(离线+Kruskal+并查集)
- hdu 3367 Pseudoforest kruskal算法的变种+并查集
- hdu 3371 Connect the Cities (Kruskal+ 并查集)
- HDU 1863 畅通工程(Kruskal + 并查集)
- HDU 1875 畅通工程再续(Kruskal + 并查集)
- PKU #1251/HDU #1301 Jungle Roads(Kruskal+并查集)
- HDU畅通工程系列(并查集kruskal算法)
- HDU 1598(并查集 kruskal思想)
- HDU 5253 最小生成树(kruskal)+ 并查集
- HDU--1233 -- 还是畅通工程 [kruskal算法] [prime算法] [并查集]
- hdu 1233 还是畅通工程 最小生成树Kruskal算法(并查集)
- hdu 1233 还是畅通工程 Kruskal 最小生成树 并查集
- 解压打包练习题及扩展
- C++面试出现频率最高的30道题目
- spring ioc 的资源定位 载入和注册
- 简述Spring容器与SpringMVC的容器的联系与区别
- 10.1顺序表基本运算
- hdu 1233 kruskal + 并查集
- 浏览器兼容性问题解决方案 · 总结
- glew库安装和初始化
- gnvm--window下的nodejs版本管理工具
- 界面之下:还原真实的MV*模式
- bzoj 3156: 防御准备(斜率DP)
- 【双十一献礼】动态规划入门:背包问题
- 图像处理--图像的几何变换--旋转变换
- Vue2原理浅谈