kruskal模板题

#include <iostream>
#include <cstdio>
#include <algorithm>
#define MAX 102
using namespace std;struct edge
{int x,y,w;edge(int x=0,int y=0,int w=0):x(x),y(y),w(w) {}
} e[MAX*MAX];
struct node
{int x,y;
} pp[MAX*MAX];int T,n,num,ppnum;
int fa[MAX];int getfather(int x)
{if(x==fa[x])return x;else return fa[x]=getfather(fa[x]);
}int cmp(struct edge aaa,struct edge bbb)
{if(aaa.w==bbb.w){if(aaa.x==bbb.x) return aaa.y<bbb.y;else return aaa.x<bbb.x;}else return aaa.w<bbb.w;
}
int cmp1(struct node aa,struct node bb)
{if(aa.x==bb.x) return aa.y<bb.y;else return aa.x<bb.x;
}
void kruscal()
{int i;sort(e,e+num,cmp);int cnt=n;for(i=1; i<=n; i++)fa[i]=i;for(i=0; i<num; i++){int t1=getfather(e[i].x);int t2=getfather(e[i].y);if(t1!=t2){pp[ppnum].x=e[i].x;pp[ppnum].y=e[i].y;ppnum++;fa[t1]=t2;cnt--;if(cnt==1)break;}}if(cnt>1) {printf("-1\n");ppnum=0;}
}int main()
{int i,j;int a[102][102];scanf("%d",&T);while(T--){num=0;scanf("%d",&n);for(i=1; i<=n; i++)for(j=1; j<=n; j++)scanf("%d",&a[i][j]);for(i=1; i<n; i++)for(j=i+1; j<=n; j++)if(a[i][j]>0){e[num].x=i;e[num].y=j;e[num].w=a[i][j];num++;}ppnum=0;kruscal();sort(pp,pp+ppnum,cmp1);for(i=0;i<ppnum;i++){if(i!=ppnum-1){printf("%d %d ",pp[i].x,pp[i].y);}else printf("%d %d\n",pp[i].x,pp[i].y);}}return 0;
}

zoj 3204 Connect them kruskal相关推荐

  1. ZOJ 3204 Connect them 继续MST

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3367 题目大意: 让你求最小生成树,并且按照字典序输出哪些点连接.无解输出-1 ...

  2. TOJ 2815 Connect them (kruskal+并查集)

    描述 You have n computers numbered from 1 to n and you want to connect them to make a small local area ...

  3. ZOJ 1203 Swordfish(最小生成树 kruskal)

    题意  给你n个点的坐标  每个点都可与其它n-1个点相连  求这n个点的最小生成树的权重 裸的最小生成树  直接kruskal咯 #include<cstdio> #include< ...

  4. 浙江省第6届程序设计竞赛结题报告汇总 zoj3202-3212

    zoj 3202 Second-price Auction 水题,不解释了,直接贴代码 #include<cstdio> #include<cstring> #include& ...

  5. 域用户区别控添加计算机和,WinServer-AD域控入门

    计算机账户和用户账户的区别 域控中不需要事先建立计算机账户,但必须建立登录用户账户. 计算机只要知道域控管理员或者授权管理账户,就可以利用此账户为所有计算机加域. 计算机加域成功之后,都会在AD管理里 ...

  6. zoj 1586 QSNetwork 最小生成树 Prim Kruskal

    题意: 一个图,不止边有权值,点也有权值 Input: 输入的第一行包含一个整数t,它指示数据集的数量. 第二行中有T个数据集. 在单个数据集中,第一行包含一个整数n,表示qs的数目. 第2行包含n个 ...

  7. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  8. poj 2031Building a Space Station(几何判断+Kruskal最小生成树)

    1 /* 2 最小生成树 + 几何判断 3 Kruskal 球心之间的距离 - 两个球的半径 < 0 则说明是覆盖的!此时的距离按照0计算 4 */ 5 #include<iostream ...

  9. Kruskal(P)和Prim(K)算法

    最小生成树 (Minimum Spanning Tree) An MST is a subset of the edges of the connected, undirected graph tha ...

最新文章

  1. RTP在。net中的使用(资料)
  2. ESP32 入门教学,不入门,不教学
  3. java数组数据结构_Java数据结构之数组
  4. Asp.net Ajax AlwaysVisibleControl使用方法
  5. 社区发现 实践_实践社区可以为您的组织做什么
  6. Java连接sap无明显报错信息,Kettle连接SAP报错问题
  7. gitglone 指定分支_安装说明 · harryxu/gitube Wiki · GitHub
  8. 【Golang】关于从切片中删除某个元素时会覆盖底层数组的说明
  9. 谷歌浏览器flash被禁用解决方法
  10. oc 之中的 汉字字符串转化成为拼音 汉字字符串的排序
  11. python泰勒公式_泰勒展开式利用python数值方法证明
  12. 【HEVC】CTU,CU,PU,TU的划分
  13. Objective C转Swift注意事项(一)合理使用结构体,枚举,extensions
  14. 手机拍摄证件照可以用什么软件
  15. 电脑网页无法解析服务器dns,电脑无法解析服务器dns地址怎么办
  16. 淘宝/天猫图片识别商品接口,1688图片识别商品API接口
  17. 函数设计中参数的规则
  18. 表单补充,labed标签,html5新增表单元素和语义
  19. java 定时启动window程序、自动滑动鼠标
  20. StoneDB 为何敢称业界唯一开源的 MySQL 原生 HTAP 数据库

热门文章

  1. SpringMVC + Apache POI 实现WEB中Excel下载功能
  2. sync.Once 的前世今生
  3. 基于LZ77算法的文件压缩收尾
  4. 时永方:做到这三点,你就是多媒体内行了
  5. 音视频技术开发周刊 56期
  6. Hadoop之ReduceTask工作机制
  7. 腾讯云TStack获“下一代云计算技术创新奖”,助力云生态信息创新发展
  8. 【git重案组】如何逃避git blame的追踪?
  9. 熊本熊之父来鹅厂啦!这是一场关于设计和体验的有趣之旅!
  10. virtualbox中Centos6.6和windows共享文件夹设置