poj2485&&poj2395 kruskal
题意:最小生成树的最大边最小,sort从小到大即可
poj2485
- #include<stdio.h>
- #include<string.h>
- #include<algorithm>
- using namespace std;
- #define maxn 505
- int map[maxn][maxn],pa[],num,n;
- struct node
- {
- int x;
- int y;
- int val;
- }s[];
- bool cmp(node a,node b)
- {
- return a.val<b.val;
- }
- void init()
- {
- int i,j;
- scanf("%d",&n);
- for(i=;i<=n;i++)
- for(j=;j<=n;j++)
- scanf("%d",&map[i][j]);
- for(i=;i<=n;i++)
- pa[i]=i;
- }
- void makemap()
- {
- int i,j;
- num=;
- for(i=;i<=n;i++)
- for(j=i+;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=;
- sort(s,s+num,cmp);
- for(i=;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 ;
- }
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[];
- bool cmp(node a,node b)
- {
- return a.val<b.val;
- }
- void init()
- {
- int i;
- for(i=;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=;
- sort(s,s+num,cmp);
- for(i=;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=;i<num;i++)
- scanf("%d%d%d",&s[i].x,&s[i].y,&s[i].val);
- kruskal();
- }
- return ;
- }
poj2485&&poj2395 kruskal的更多相关文章
- POJ2395 Out of Hay(求最小生成树中最大的边权,Kruskal)
POJ2395 Out of Hay 寻找最小生成树中最大的边权. 使用 Kruskal 求解,即求选取的第 \(n-1\) 条合法边. 时间复杂度为 \(O(e\log e)\) . #includ ...
- poj2485 kruskal与prim
Kruskal: #include<iostream> #include<cstdio> #include<algorithm> using namespace s ...
- poj2485(Kruskal)
这道题显然是一道最小生成树的问题,参考算法导论中的Kruskal方法,先对路径长度进行排序,然后使用并查集(Disjoint Set Union)来判断节点是否连通,记录连接所有节点的最后一条路径的长 ...
- Kruskal算法求最小生成树(POJ2485)
题目链接:http://poj.org/problem?id=2485 #include <iostream> #include <stdio.h> #include < ...
- POJ-2485 Highways---最小生成树中最大边
题目链接: https://vjudge.net/problem/POJ-2485 题目大意: 求最小生成树中的最大边 思路: 是稠密图,用prim更好,但是规模不大,kruskal也可以过 #inc ...
- POJ-2395 Out of Hay---MST最大边
题目链接: https://vjudge.net/problem/POJ-2395 题目大意: 求MST中的最大边,和POJ-2495类似 思路: 模板直接过 #include<iostream ...
- 图的生成树(森林)(克鲁斯卡尔Kruskal算法和普里姆Prim算法)、以及并查集的使用
图的连通性问题:无向图的连通分量和生成树,所有顶点均由边连接在一起,但不存在回路的图. 设图 G=(V, E) 是个连通图,当从图任一顶点出发遍历图G 时,将边集 E(G) 分成两个集合 T(G) 和 ...
- 最小生成树---Prim算法和Kruskal算法
Prim算法 1.概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gra ...
- 最小生成树(prim&kruskal)
最近都是图,为了防止几次记不住,先把自己理解的写下来,有问题继续改.先把算法过程记下来: prime算法: 原始的加权连通图——————D被选作起点,选与之相连的权值 ...
随机推荐
- 孙鑫视频学习:VS2010中找不到【Tab order】菜单项
在学习孙鑫视频中,修改Tab顺序时,找不到VC6.0中提到的[Layout]->[Tab order]菜单项,但VC2010中可以用Ctrl+D调出来Tab顺序,或者[格式]->[Tab键 ...
- 我的Unity学习路线
前言 上班的时间内都很忙在做项目,休息时间里闲下来了,却觉得没什么事做不自在.难道真是苦逼的命不会享受? 想了一下这一段时间以来的过程:先是重新看了一遍Unity的基础部分,然后买了<3D数学基 ...
- java14-4 Pattern和Matcher类的使用
获取功能 Pattern和Matcher类的使用 模式和匹配器的基本使用顺序 import java.util.regex.Matcher; import java.util.regex.Pat ...
- java11-5 String类的转换功能
String的转换功能: byte[] getBytes():把字符串转换为字节数组. char[] toCharArray():把字符串转换为字符数组. static String valueOf( ...
- Android签名机制:生成keystore、签名、查看签名信息
转自:http://www.ourunix.org/post/146.html
- openstack虚拟机迁移的操作记录
需求说明:计算节点linux-node1.openstack:192.168.1.8 计算节点linux-node2.openstack:192.168.1.17 这两个计算节点在同一个控制节点下( ...
- aop介绍
- C语言 百炼成钢15
//题目43:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出 //圈子,问最后留下的是原来第几号的那位. #include<stdio.h> #inclu ...
- 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
这段时间在研究火车头的入库教程,在“配置登陆信息和数据库(mysql)”连接中,出现“服务器连接错误Host 'XXX' is not allowed to connect to this MySQL ...
- 怎么写针对IE9的CSS
(自己亲自试过有用)针对IE9的CSS只需在相应CSS代码加入只有IE9识别的 \9\0.具体代码如下: .div{ background-color:#0f0\9\0;/* ie9 */ } 其他浏 ...