hdu1102 kruskal算法求最小生成树
来源:互联网 发布:mac不能玩游戏吗2017 编辑:程序博客网 时间:2024/04/28 14:26
裸的kruskal。
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<cmath>#include<string>#include<map>#include<set>#include<algorithm>#include<vector>#include<queue>#include<stack>#include<sstream>#define LL long long#define OJ_DEBUG 0#define READ_FILE 0using namespace std;const int NN_MAX = 110;const int MM_MAX = 100010;const int INF = 0x3fffffff;struct Edge{ int a,b,c; Edge (int a1=0,int b1=0,int c1=0):a(a1),b(b1),c(c1){} bool operator < (const Edge& chs)const{return c<chs.c;}}theEdge[NN_MAX*NN_MAX];/**********************************************************/int matx[NN_MAX][NN_MAX],p[NN_MAX*NN_MAX];int lenEdge,ans;/**********************************************************/int min_2 (int x,int y) {return x<y?x:y;}int max_2 (int x,int y) {return x>y?x:y;}void swap (int& a, int& b){a^=b;b^=a;a^=b;}int find (int i){return i==p[i]?i:p[i]=find(p[i]);}void kruskal ();/**********************************************************/int main(){ if (READ_FILE) freopen ("in.txt","r",stdin); int n,q; while (scanf ("%d",&n)!=EOF) {for (int i=1;i<=n;i++) for (int j=1;j<=n;j++)scanf ("%d",&matx[i][j]);scanf ("%d",&q);int a,b;for (int i=0;i<q;i++){ scanf ("%d %d",&a,&b); matx[a][b]=matx[b][a]=0;}lenEdge=0;for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++)theEdge[lenEdge++]=Edge(i,j,matx[i][j]);ans=0;for (int i=0;i<=n;i++) p[i]=i;kruskal ();printf ("%d\n",ans); } return 0;}void kruskal (){ sort (theEdge,theEdge+lenEdge); for (int i=0;i<lenEdge;i++){int x=find(theEdge[i].a), y=find(theEdge[i].b);if (x!=y){ ans+=theEdge[i].c; p[x]=y;} } }
0 0
- hdu1102 kruskal算法求最小生成树
- HDU1102(最小生成树Kruskal算法)
- hdu1102 - Constructing Roads (求最小生成树) (Prim & Kruskal)
- HDU1102-最小生成树-Kruskal算法-Prim算法
- Kruskal算法求最小生成树
- Kruskal 算法 求最小生成树
- 24.kruskal算法 求 最小生成树
- Kruskal算法(求最小生成树)
- Kruskal算法求最小生成树
- Kruskal 算法求最小生成树
- uva1395 Kruskal算法求最小生成树
- Kruskal算法求最小生成树
- Kruskal算法求MST(最小生成树)
- 求最小生成树Kruskal算法
- 水题 kruskal算法求最小生成树
- Kruskal算法求最小生成树
- 求最小生成树的Kruskal算法
- kruskal算法求最小生成树
- Unity Manual之GameObject 游戏对象
- 学习BLAS库 -- DTRSM
- Android Popupwindow 点击外部消失的实现
- 2015-08-06
- 键值编码 Key-Value Coding Programming Guide---1
- hdu1102 kruskal算法求最小生成树
- 上课时的一些笔记 文字篇
- 如何在Windows下安装Tomcat服务器
- 【剑指Offer面试题】 九度OJ1370:数组中出现次数超过一半的数字
- HDU 5363 元素为1~n的集合有多少个子集的元素和为偶数-思维-(快速幂取模)
- 键值编码 Key-Value Coding Programming Guide---2
- oracle 数据库批处理文件
- Ubuntu14.04 CuDNN安装(Caffe + Cuda7.0下)
- 键值观察