[Aha]镖局运镖
来源:互联网 发布:sql注入绕过安全狗 编辑:程序博客网 时间:2024/05/01 05:47
题目:详见啊哈算法P212页。
分析:最小生成树-需要结合并查集。
代码:
#include<iostream>#include<cstdio>#include<algorithm>using namespace std ;int f[1000];class edge{ public: int u ; int v ; int w ; };int getf(int x){ if(x==f[x]) return x ; else return f[x] = getf(f[x]);}int merge(int a ,int b){ int tx = getf(a); int ty = getf(b); if(tx!=ty){ f[ty] = tx ; return 1; } else return 0 ;}bool compar(edge a , edge b){ if(a.w>b.w) return false ; else return true ;}int main(){ freopen("in.txt","r",stdin); int n , m ,sum ; edge a[1000]; while(scanf("%d %d",&n,&m)!=EOF){ //初始化 for(int i = 1; i <= n ; i++) f[i] = i ; sum = 0 ; for(int i = 1; i <= m ; i++ ) scanf("%d %d %d",&a[i].u,&a[i].v,&a[i].w); sort(a+1,a+1+m,compar); //for(int i = 1 ; i <= m ; i++) printf("%d %d %d\n",a[i].u,a[i].v,a[i].w); for(int i = 1 ; i <= m ; i++){ if(merge(a[i].u,a[i].v)) sum += a[i].w; if(sum == n-1) break ; } printf("%d\n",sum); } return 0 ; }
0 0
- [Aha]镖局运镖
- 8.1镖局运镖——图的最小生成树
- 镖局运镖——最小生成树(Kruskal算法)
- [Aha]城市地图
- [Aha]擒贼先擒王
- aha排序
- aha~my first bolg!
- [Aha]火柴棍等式
- [Aha]解救小哈
- [Aha]单源最短路
- 站在创业者角度看《龙门镖局》
- 从龙门镖局看自动化测试
- 【龙门镖局全体人员喜剧win7主题】
- Scott Meyers最近的一次Aha!时刻
- My Most Important C++ Aha! Moments...Ever
- 重读《Programming Pearls》之二:Aha!Algorithms
- 【aha, Insight】原来二进制数是这样
- [Aha]1~n的全排列
- 数据结构 day1
- 3D转换 导航栏
- hdu 1812 Count the Tetris (置换)
- Android平台Robotium UI测试详解
- 如何上传自己的代码到Git上
- [Aha]镖局运镖
- <32>python学习笔记——常用模块
- HBase 1.0.0 API的变化
- 258. Add Digits
- 指针例题详解
- 聚合maven+spring-boot打包可执行jar
- Ubuntu下QT creator查看pixhawk工程
- 大海波涛
- 关于Tomcat 加入项目问题