HLGOJ 1101 Bombs of HRBUST(kruskal)
来源:互联网 发布:剑灵卡刀软件 编辑:程序博客网 时间:2024/06/05 16:14
简单的最小生成树问题,题目给出的是一个矩阵,用prim就直接用读的数组,用kruskal就直接读取列下标大于行下标的数然后存边排序,就可以得到最小生成树了。
代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 100struct Edge{ int from, to, data;};Edge edges[maxn*maxn/2];bool cmp(const Edge a, const Edge b){ return a.data<b.data;}int p[maxn+10];int fa(int x){ return p[x]==x? x : p[x] = fa(p[x]);}int main(){ int t; scanf("%d", &t); while(t--) { int n, tmp; scanf("%d", &n); int cnt = 0; for(int i = 0; i <= n; i++) p[i] = i; for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) { scanf("%d", &tmp); if(j > i) { edges[cnt].from = i; edges[cnt].to = j; edges[cnt++].data = tmp; } } } sort(edges, edges + cnt, cmp); //for(int i = 0; i<cnt; i++) { // printf("->%d\n", edges[i].data); } int ans = 0; int cnt1 = 1; for(int i = 0; i < cnt; i++) { int x = fa(edges[i].from); int y = fa(edges[i].to); if(x!=y) { ans += edges[i].data; p[x] = y; cnt1++; } if(cnt1==n) break; } printf("%d\n", ans); } return 0;}
0 0
- HLGOJ 1101 Bombs of HRBUST(kruskal)
- Hust oj 1101 Bombs of HRBUST(Prim)
- hrbust 1101 Bombs of HRBUST(最小生成树)
- HLGOJ 1133 MST(kruskal)
- 【Hrbust】 The Smallest Oil Tank (Kruskal算法)
- Stryker Cavalry Ridding Baghdad of Bombs, ‘Bad Guys’
- hrbust 1133报告、MST最小生成树 Kruskal算法
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- Hrbust
- HRBUST
- HRBUST
- HRBUST
- 动态sql语句基本语法
- Algorithm学习笔记 --- 装箱问题(动态规划)
- UI初级--UI基本控件
- NYOJ 170 网络的可靠性
- Oracle数据库程序设计学习笔记
- HLGOJ 1101 Bombs of HRBUST(kruskal)
- 工作流基础
- SQL Server 触发器
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
- LVS和Heartbeat的安装配置说明
- IOS高级编程(网络编程一)
- iOS7适配问题总结
- Java SE 8 在并发工具方面的加强
- 基因芯片(Affymetrix)分析1:芯片质量分析