SSL 1764_并差集在KURUSKAL中的应用
来源:互联网 发布:网上绘图软件 编辑:程序博客网 时间:2024/05/20 13:06
思路
就是将变权从小到大排序,然后每次取最小变,然后用并差集查找两个点是否在同一集合中,如果不在的话就合并这两个集合,一直到把所有边做完或只有一个集合为止
#include <stdio.h>#include <algorithm>using namespace std;int f[10000000],b[10000][10000];struct arr{ int x,y,z;};arr a[10000000];int cam(arr x,arr y){ return x.z<y.z;}int find(int x){ if (!f[x]) return x; f[x]=find(f[x]); return f[x];}int insert(int x,int y){ if (find(x)!=find(y)) { f[find(x)]=find(y); return 1; } return 0;}int main(){ int n; scanf("%d",&n); for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) scanf("%d",&b[i][j]); int k=0; for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (i!=j&&b[i][j]!=0) { k++; a[k].x=i; a[k].y=j; a[k].z=b[i][j]; } sort(a+1,a+k+1,cam); int tot=0; for (int i=1;i<=k;i++) { if (find(a[i].x)!=find(a[i].y)) { tot+=a[i].z; insert(a[i].x,a[i].y); } } printf("%d\n",tot);}
1 0
- SSL 1764_并差集在KURUSKAL中的应用
- SSL 1669_亲戚_并差集
- SSL 1312_旅行_并差集
- SSL 1222_矩形_并差集
- SSL 1255_银河英雄传说_并查集
- SSL 1662_家庭问题_并查集
- oracle中的交集、并集、差集
- NYOJ_129_树的判定 _【并差集】
- 低压差线性稳压器在开关电源中的应用
- 微分方程在建模中的应用(建立差分模型)
- 并查集及其在最小生成树中的应用
- 并查集及其在最小生成树中的应用
- SQL 交集 差集 并集 笛卡尔积 应用实例
- 并差集的三大应用整理与总结
- [Object C]_[初级]_[NSUserDefaults在项目中的应用]
- shell中的(交集,并集,差集 等)统计
- kruskal(并差集)
- 并差集
- c语言字符串函数详解
- STM32 GPIO各种模式的深入理解
- visual studio 2013黑框闪一下消失
- java web中servlet的概念理解之我见(纯为新手理解概念而写)
- java基本类型以及java的一些基本知识
- SSL 1764_并差集在KURUSKAL中的应用
- 发布wex5到服务器步骤
- POJ 3155 Hard Life 已翻译
- 训练总结(大一下)
- JavaScript高级程序设计10--DOM2和DOM3
- POJ-2486-树形dp
- Poj_2586 Y2K Accounting Bug(数学)
- 丢失undo表空间后恢复
- colorhistogram.h