kruskal算法
来源:互联网 发布:琪琪影院软件下载 编辑:程序博客网 时间:2024/06/08 00:14
#include <iostream>#include <cstring>#include <algorithm>using namespace std;struct edge {int begin;int end;int cost;};bool cmp(edge a, edge b){if (a.cost < b.cost)return true;return false;}int findSet(int *parent, int i){int j = i;while (parent[j] > 0)j = parent[j];return j;}bool unionSet(int *parent, int i, int j){int a = findSet(parent,i);int b = findSet(parent,j);if (a != b) {int x = parent[i] + parent[j];if (parent[i] > parent[j]) {parent[i] = j;parent[j] = x;}else {parent[j] = i;parent[i] = x;}return true;}return false;}int main(void){int mincost = 0;struct edge cost[100 * 100];int input;while (cin >> input) {int *parent = new int[input];memset(parent, -1, input*sizeof(int));int value,index = 0;for (int i = 0; i < input; i++)for (int j = 0; j < input; j++) {cin >> value;if (i > j) {cost[index].begin = i;cost[index].end = j;cost[index].cost = value;index++;}}sort(cost, cost + index, cmp);int num = 0;for (int i = 0; i < input; i++) {if (unionSet(parent,cost[i].begin, cost[i].end)) {mincost += cost[i].cost;if (++num == input - 1)break;}}printf("%d\n", mincost);}return 0;}
0 0
- Kruskal算法
- Kruskal算法
- Kruskal算法
- kruskal算法
- Kruskal算法
- Kruskal算法
- Kruskal算法
- Kruskal算法
- kruskal算法
- kruskal算法
- kruskal算法
- Kruskal算法
- kruskal算法
- Kruskal算法
- Kruskal算法
- Kruskal算法
- Kruskal算法
- Kruskal算法
- Android异步处理四:AsyncTask的实现原理
- Coursera Machine Learning 回顾
- 超链接a的属性title
- 二叉排序树
- 【深入浅出ios开发】使用代理进行传值
- kruskal算法
- XSS跨站脚本攻击(一)
- 关于QPluginLoader的加载和卸载
- 向量空间模型——计算文本(英文)相似度
- leetcode: Interleaving String
- iOS图像拉伸,stretchableImageWithLeftCapWidth:topCapHeight:
- [游戏]传染病CONTAGION
- Leetcode:3Sum Closest
- MyBatis3整合Spring3的Transaction事务处理