HDU ACM 1233 还是畅通工程
来源:互联网 发布:输出数组元素 15 分 编辑:程序博客网 时间:2024/06/06 02:29
畅通工程的升级版。
求最小生成树。Kruskal 算法:应用并查集。
#include<iostream> #include<algorithm>using namespace std;int p[102];bool Init(int n) //一开始指向自己{for(int i=0;i<=n;i++)p[i]=i;return true;}int Find(int x) //找到根节点{int r,i,j;r=x;while(r!=p[r]) r=p[r]; //路径压缩准备,找到根节点i=x;while(i!=p[i]){j=p[i];p[i]=r;i=j;}return i; //返回根节点}bool Merge(int x,int y) //返回是否需要合并{int tx,ty;tx=Find(x);ty=Find(y);if(tx==ty) return false;p[tx]=ty;return true;}struct Path{int a,b;int v;};bool cmp(Path a,Path b){return a.v<b.v;}int main() { int n,i,sum,cnt;Path pa[5002];while(scanf("%d",&n)==1&& n){for(i=0;i<n*(n-1)/2;i++)scanf("%d%d%d",&pa[i].a,&pa[i].b,&pa[i].v);sort(pa,pa+n*(n-1)/2,cmp); //根据路劲从小到大排序sum=0;cnt=1;Init(n);for(i=0;cnt<n;i++) //找到n-1一条路if(Merge(pa[i].a,pa[i].b)){sum+=pa[i].v;cnt++;}printf("%d\n",sum);} return 0; }
0 0
- 还是畅通工程 hdu acm 1233 c++
- HDU ACM 1233 还是畅通工程
- [ACM] hdu 1233 还是畅通工程(最小生成树)
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- HDU 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu - 1233 - 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- hdu 1233 还是畅通工程
- 创业?创业!
- 工作2年后的去学习有感
- 第二部分 Linux 文件、目录与磁盘格式
- Apple watch 开发指南(1) 预览
- 机器学习(6)——Logistic回归
- HDU ACM 1233 还是畅通工程
- CentOS以源码方式安装MySQL
- spring之bean的生命周期
- Java中正则Matcher类的matches()、lookAt()和find()的区别
- ABAP模块-任意report作为附件以邮件形式发送
- 第一周项目二 长方柱类
- SQL like 模糊查询
- ICMP:Internet控制报文协议
- android 手机连接电脑不可见的处理