poj2485poj2395 kruskal
题意:最小生成树的最大边最小,sort从小到大即可
poj2485
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define maxn 505 int map[maxn][maxn],pa[150000],num,n; struct node {int x;int y;int val; }s[150000]; bool cmp(node a,node b) {return a.val<b.val; } void init() {int i,j;scanf("%d",&n);for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&map[i][j]);for(i=1;i<=n;i++)pa[i]=i; } void makemap() {int i,j;num=0;for(i=1;i<=n;i++)for(j=i+1;j<=n;j++){s[num].x=i;s[num].y=j;s[num++].val=map[i][j];} } int find(int x) {if(x!=pa[x])pa[x]=find(pa[x]);return pa[x]; } void kruskal() {int i,j,ans=0;sort(s,s+num,cmp);for(i=0;i<num;i++){int l1,l2;l1=find(s[i].x);l2=find(s[i].y);if(l1!=l2){pa[l1]=l2;ans=s[i].val;}}printf("%d\n",ans); } int main() {int t;scanf("%d",&t);while(t--){init();makemap();kruskal();}return 0; }
poj2395
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; #define maxn 2002 int pa[maxn],num,n; struct node {int x;int y;int val; }s[10010]; bool cmp(node a,node b) {return a.val<b.val; } void init() {int i;for(i=0;i<=n;i++)pa[i]=i; } int find(int x) {if(x!=pa[x])pa[x]=find(pa[x]);return pa[x]; } void kruskal() {int i,j,ans=0;sort(s,s+num,cmp);for(i=0;i<num;i++){int l1,l2;l1=find(s[i].x);l2=find(s[i].y);if(l1!=l2){pa[l1]=l2;ans=s[i].val;}}printf("%d\n",ans); } int main() {int i,j;while(scanf("%d%d",&n,&num)!=EOF){init();for(i=0;i<num;i++)scanf("%d%d%d",&s[i].x,&s[i].y,&s[i].val);kruskal();}return 0; }
转载于:https://www.cnblogs.com/sweat123/p/4681916.html
poj2485poj2395 kruskal相关推荐
- 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)
目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...
- 基本数据结构(图: 基本结构,DFS,prim算法, kruskal算法)
#include <iostream> using namespace std; //约定: //1. 图是由很多节点(VERTEX)构成的, 因此图结构是由一个VERTEX的链表构成的, ...
- Kruskal算法 - C语言详解
最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总 ...
- vijos P1190繁忙的都市(Kruskal)(最小生成树)
P1190 繁忙的都市 城市C是一个非常繁忙的大都市,城市 中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉 ...
- 技术图文:如何利用C# 实现 Kruskal 最小生成树算法?
背景 以前我写过一些图文来介绍有关数据结构与算法的知识: 8大排序算法之:直接插入排序(Straight Insertion Sort) 8大排序算法之:希尔插入排序(Shell Insertion ...
- 【数据结构】最小生成树 Prim算法 Kruskal算法
最小生成树应用场景: 假设以下场景,有一块木板,板上钉上一些钉子,这些钉子可以由一些细绳连接起来.假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样得情况,即用最少的细绳把所有的钉子连接起 ...
- ds图—最小生成树_Java: Kruskal算法生成最小生成树(邻接矩阵)
Java: Kruskal算法生成最小生成树(邻接矩阵): package 输出: Kruskal=36: (E,F) (C,D) (D,E) (B,F) (E,G) (A,B) 分析: Java: ...
- Kruskal算法模版
1.例如:求解如图的最小生成树 求解过程: 方法一:一般做法(最终都是在避环) #include<iostream> #include<algorithm> #include& ...
- HDU2988(Kruskal算法模版)
其实以下两种方法的实质本来就是一样的,就是在写的形式不一样而已!只要理解就可以了! 方法一: #include<iostream> #include<algorithm> #i ...
最新文章
- html5语音对讲,c#语音对讲demo
- SpringBoot 2.6.0发布:禁止循环依赖,还有哪些实用的更新?
- springboot使用redisTemplate 报错:APP FAILED TO START Field template in required a single bean redis工具类
- 黑科技小程序,无需前台登记直接刷脸秒住酒店!
- 微型计算机原理上机实验改错,北京理工大学微机原理汇编语言上机实验题
- positive definite quadratic form and positive definite matrix
- apache编译出错 error: mod_deflate has been requested
- Qunee for HTML5图形组件
- 10bit灰阶测试图_色彩深度技术探讨,关于8bit,10bit,12bit,16bit,什么是灰阶?...
- Objectdock stacks docklet 无法启动程序快捷方式
- 深入“无人地带”,快递企业能变更“快”吗?
- OCP-1Z0-051 补充题库 第35题 LONG类型
- 查看网页源代码的方法
- 大众点评CEO张涛:踏实创业 低调打造百亿级公司
- ExoPlayer官方中文使用文档
- java web电脑网站微信扫码支付(Servlet+JSP)
- Oracle数据库的体系结构和用户管理
- ITEXT-定位PDF中图片的坐标与页码
- java实现远程开关机
- java enum类默认常量是什么_Java枚举类型enum的详解及使用