水题 kruskal算法求最小生成树
2016-05-14 21:40
295 查看
时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB
描述
要求对一个图使用kruskal算法求最小生成树,依次输出选出的边所关联的顶点序列,要求下标较小者在前,如图所示,其顶点序列为1 3 4 6 2 5 3 6 2 3
输入若干行整数
第一行为两个整数,分别为图的顶点数和边数
第二行开始是该图的邻接矩阵,主对角线统一用0表示,无直接路径的两点用100来表示(保证各边权值小于100)
输出若干用空格隔开的整数
样例输入
样例输出
1 3 4 6 2 5 3 6 2 3
描述
要求对一个图使用kruskal算法求最小生成树,依次输出选出的边所关联的顶点序列,要求下标较小者在前,如图所示,其顶点序列为1 3 4 6 2 5 3 6 2 3
输入若干行整数
第一行为两个整数,分别为图的顶点数和边数
第二行开始是该图的邻接矩阵,主对角线统一用0表示,无直接路径的两点用100来表示(保证各边权值小于100)
输出若干用空格隔开的整数
样例输入
6 10 0 6 1 5 100 100 6 0 5 100 3 100 1 5 0 5 6 4 5 100 5 0 100 2 100 3 6 100 0 6 100 100 4 2 6 0
样例输出
1 3 4 6 2 5 3 6 2 3
#include "iostream" #include "deque" #include "algorithm" using namespace std; #define Max 100 int Father[Max]; int Find(int x) //查 { if(x==Father[x]) return x; else return Find(Father[x]); } void Union(int x,int y) //并 { Father[x]=y ; } int Top,Edge; struct Node { int Next; int Weight; int Priority; }; bool Com(Node x,Node y) { return x.Weight<y.Weight; } deque<Node>Map; int main() { //cin>>Top>>Edge && Top!=0 //freopen("1.txt","r",stdin); cin>>Top>>Edge; int i,j; Node y; for(i=1;i<=Top;i++) for(j=1;j<=Top;j++) { int x; cin>>x; if(j>i && x!=100) { y.Next=j; y.Priority=i; y.Weight=x; Map.push_back(y); } } sort(Map.begin(),Map.end(),Com); for(i=1;i<=Top;i++) { Father[i]=i; } int count=0; for(i=0;i<Map.size();i++) { if(count==Top-1) break; if(Find(Map[i].Priority)!=Find(Map[i].Next)) { Union(Map[i].Priority,Map[i].Next); count++; if(Map[i].Priority>Map[i].Next) cout<<Map[i].Next<<" "<<Map[i].Priority<<" "; else cout<<Map[i].Priority<<" "<<Map[i].Next<<" "; } } return 0; }
相关文章推荐
- poj-2312-Battle City
- OSX安装homebrew以及正确安装PIL(包括jpeg)的方法
- AndroidStudio开发Gradle学习
- 72. Edit Distance 动态规划dp
- Android中Binder进程间通信库
- No result defined for action app.sys.exammgr.action.PaperAction and result input
- 变量定义在主函数外面
- bootstrapValidator.js 做表单验证
- 一次蜿蜒曲折的RFID破解之路
- SSIS 学习之旅 FTP访问类
- 【JavaScript】——匿名函数和闭包
- 关于jstl taglib的错误 Can not find the tag library descriptor for “http://java.sun.com/jstl/core”
- 服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站(转)
- LeetCode-32.Longest Valid Parentheses
- android:onClick属性使用之ToggleButton
- CentOS7上安装和使用Docker
- TCP网络编程中connect()、listen()跟accept()三者之间的关系
- QQListview左滑删除,经典案例,高仿QQ左滑,动画效果,自定义!!
- Qt学习之路(58): 进程间交互
- 第七周项目一-成员函数、友元函数和一般函数有区别