ZQUOJ1336最小生成树(MST)之Kruskal
来源:互联网 发布:数据对比分析软件 编辑:程序博客网 时间:2024/06/06 01:00
题意:
Description
给出一个无向网,求该无向网的最小生成树。各条边的权重不超过100000。
本题与上一题的测试数据是一样的,本题请用Kruskal算法来做,以便与上一题做比较。
Input
输入的第一行是一个整数N,表示该网的顶点个数。 3 ≤ N ≤ 100
接下来是N行,每行N个整数,表示每个顶点到其余顶点的距离。
Output
输出该最小生成树的权重。
Sample Input
4
0 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0
Sample Output
28
#include<iostream>#include<cstdio>#include<queue>using namespace std;struct s{ int i,j,k; friend bool operator < (const s &n,const s & m ) { return n.k>m.k; }}e;priority_queue<s>q;int t,a[101];int h(int i){ while(a[i]!=i) i=a[i]; return a[i];}void Q(int n){ int i,k,j,l; for(i=0;i<n;i++) a[i]=i; while(!q.empty()&&k!=n-1) { e=q.top(); q.pop(); j=h(e.i); l=h(e.j); if(j!=l) { a[j]=l; t+=e.k; k++; } }}int main(){ int n,m,i,j,k; while(~scanf("%d",&n)) { while(!q.empty()) q.pop(); for(i=0;i<n;i++) for(j=0;j<n;j++) { scanf("%d",&k); if(i!=j&&j>i) { e.i=i; e.j=j; e.k=k; q.push(e); } } t=0; Q(n); printf("%d\n",t); }return 0;}
0 0
- ZQUOJ1336最小生成树(MST)之Kruskal
- 图的最小生成树(MST)之Kruskal算法
- 最小生成树(MST) Kruskal 算法
- 最小生成树MST-Kruskal算法
- 最小生成树(MST):Prim / Kruskal
- Kruskal算法求MST(最小生成树)
- kruskal最小生成树(MST)算法
- MST最小生成树 Kruskal算法
- 算法导论 最小生成树MST-KRUSKAL
- 【贪心法求解最小生成树之Kruskal算法详细分析】---Greedy Algorithm for MST
- 图 之 MST(最小生成树 — kruskal算法 )并查集实现
- hrbust 1133报告、MST最小生成树 Kruskal算法
- MST最小生成树及克鲁斯卡尔(Kruskal)算法
- 图的最小生成树MST--Kruskal算法
- 最小生成树(MST)——Kruskal算法
- 蓝桥杯练习题 最小方差生成树 (Kruskal MST 好题)
- 最小生成树(MST)—prim和kruskal算法
- 数据结构基础6.3:最小生成树MST(Prim、Kruskal)
- java开发工程师需求
- 嘉兴培训第二天——第一堂课
- Python 闭包
- Android日期格式化
- Java基础之While循环
- ZQUOJ1336最小生成树(MST)之Kruskal
- 那些游戏开发牛人的博客和IT学习网站
- scala学习笔记
- Java基础泛型Static方法
- Insert Interval
- ZQUOJ1335最小生成树(MST)之Prim
- 和java的DES/ECB/PKCS5Padding相同的objc实现方式
- [分享]面向中大型应用的PHPWeb开发框架Ice
- 单链表Singly Linked List之JAVA实现