最小生成树模板克鲁斯卡尔poj1258
来源:互联网 发布:单片机usb通讯协议 编辑:程序博客网 时间:2024/05/17 22:52
我很弱啊!!!连最小生成树也要做模板。。。。。
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct edgee{int u, v,cost;};edgee edge[20000];int fa[2000];int n,tot,ans;int findfa(int num){if (fa[num] != num)fa[num] = findfa(fa[num]);return fa[num];}void init(){for (int i = 1; i <= n; i++)fa[i] = i;}bool unionn(int u, int v){int fau = findfa(u);int fav = findfa(v);if (fav != fau){fa[fav] = fau;return true;}elsereturn false;}bool com(edgee a, edgee b){return a.cost < b.cost;}void kurscal(){sort(edge, edge + tot, com);for (int i = 0; i < tot; i++){int u = edge[i].u; int v = edge[i].v;if (unionn(u, v))ans += edge[i].cost;}printf("%d\n", ans);}int main(){while (scanf("%d", &n) != EOF){ans = 0;tot = 0;//cout << n << endl;init();for (int i = 1; i <= n; i++){for (int j = 1; j <= n; j++){int q;scanf("%d", &q);if (j > i){edge[tot].u = i;edge[tot].v = j;edge[tot].cost = q;tot++;}}}///for (int i = 0; i < tot; i++)//cout << "from:" << edge[i].u << " " << "to:" << edge[i].v <<" "<<"cost:"<<edge[i].cost<< endl;kurscal();}return 0;}
阅读全文
0 0
- 最小生成树模板克鲁斯卡尔poj1258
- 最小生成树 克鲁斯卡尔算法
- 最小生成树(克鲁斯卡尔方法)
- 最小生成树--克鲁斯卡尔算法
- 克鲁斯卡尔-最小生成树
- 克鲁斯卡尔求最小生成树
- 克鲁斯卡尔[最小生成树集锦]
- 克鲁斯卡尔最小生成树算法
- 最小生成树(克鲁斯卡尔算法)
- 最小生成树--克鲁斯卡尔算法
- 最小生成树---克鲁斯卡尔算法
- Kruskal(克鲁斯卡尔) 最小生成树 算法详解+模板
- 【hdu 1863】畅通工程(最小生成树&克鲁斯卡尔算法模板)
- 克鲁斯卡尔算法生成最小生成树
- 最小生成树---克鲁斯卡尔kruskal算法
- 克鲁斯卡尔(Kruskal)算法求最小生成树
- 最小生成树-克鲁斯卡尔-Kruskal算法
- 最小生成树---克鲁斯卡尔kruskal算法---Simple one
- linux: NAT技术和代理服务器
- BleachBit清理垃圾
- Java Service Wrapper-构建自己的Wrapper应用
- UVA10129PlayOnWords
- 模拟 字符串变一样
- 最小生成树模板克鲁斯卡尔poj1258
- 201703-2 学生排队题解
- Linux下MySQL的备份和恢复
- C++简单实现顺序表与单链表
- 几种图像滤波算法的简单介绍
- 图解Tensorflow
- Windows10通过cmd安装pip install xadmin时候出错
- 函数onsize()与onsizing()区别
- IDA 动态调试apk so