hpuoj 问题 C: 善良的国王【最小生成树kurskal】
问题 C: 善良的国王
时间限制: 1 Sec 内存限制: 128 MB
提交: 112 解决: 48
[提交][状态][讨论版]
题目描述
很久很久以前,有一个贫困的国家,这个国家有一个善良爱民的国王,但是国运维艰,这个国家总是不得不面对这天灾的严峻挑战,又一次连月的大雨,引发了洪水,洪水冲断了道路,水褪去后也有很多村庄成为了孤岛,善良的国王爱民如子,于是他想从本不富足的税收中拿出一部分钱,来给这些村庄修道路,但是国力有限,不能修复所有的道路,于是国王决定,保证村庄两两之间可以到达就好。现在国王想知道他要建的道路中最长的最少要多长。
输入
输入包含多组测试数据,每组测试数据首先输入一个n,表示有n个村庄3 <= n <=
500,编号为1-n,然后下边一个n*n的矩阵,第i行第j列的值,表示标号i到编号j的村庄的距离是这个值,单位1~65536
输出
输出国王要建的道路中最长的最少的长度。
样例输入
3
0 990 692
990 0 179
692 179 0
样例输出
692 简单最小生成树,求出最小生成树中的最长边:用kurskal算法在加边时多写一个用于求最长边的步骤即可用 prime算法也是如此,这里就不写prime了
kurskal算法:
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAX 1100
#define maxn(x,y)(x>y?x:y)
#define INF 0x3f3f3f
using namespace std;
int n,k,maxx;
int set[MAX],map[MAX][MAX];
struct node
{
int b;
int e;
int m;
}s[MAX];
bool cmp(node a,node b)
{
return a.m<b.m;
}
int find(int fa)
{
if(fa==set[fa])
return fa;
return set[fa]=find(set[fa]);
}
void mix(int x,int y)
{
int fx=find(x);
int fy=find(y);
if(fx!=fy)
set[fx]=fy;
}
void init()
{
int i,j;
for(i=1;i<=n;i++)
set[i]=i;
} void getmap()
{
int i,j;
memset(map,0,sizeof(map));
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
scanf("%d",&map[i][j]);
}
}
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
{
if(map[i][j]>0)
{
s[k].b=i;
s[k].e=j;
s[k++].m=map[i][j];
}
}
} void solve()
{
int i,j;
sort(s,s+k,cmp);
for(i=0;i<k;i++)
{
if(find(s[i].b)!=find(s[i].e))
{
mix(s[i].b,s[i].e);
maxx=maxn(maxx,s[i].m);
}
}
printf("%d\n",maxx);
}
int main()
{
int i,j;
while(scanf("%d",&n)!=EOF)
{
k=0;maxx=0;
init();
getmap();
solve();
}
return 0;
}
hpuoj 问题 C: 善良的国王【最小生成树kurskal】的更多相关文章
- 图论篇2——最小生成树算法(kurskal算法&prim算法)
基本概念 树(Tree) 如果一个无向连通图中不存在回路,则这种图称为树. 生成树 (Spanning Tree) 无向连通图G的一个子图如果是一颗包含G的所有顶点的树,则该子图称为G的生成树. 生成 ...
- nyoj 925 国王的烦恼(最小生成树)
/* 题意:N个城市中每两个城市有多条路径连接,可是因为路径存在的天数是有限的!以为某条路经不存在了 导致N个城市不能连通了,那么村名们就会抗议!问一共会有多少次抗议! 思路:最小生成树....我们用 ...
- 题解西电OJ (Problem 1004 -亚特兰提斯)--最小生成树
Description 为了找寻沉睡的亚特兰提斯大陆,wm来到了大西洋上进行探险,找了半个月仍一无所获.然而在一次突袭而来的暴风雨后,wm的船莫名地驶入了一片未知的区域,发现了一个地图上未标记的岛屿, ...
- Kurskal算法(克鲁斯卡尔算法)
特点:适用于稀疏图,边比较少的图.如果顶点较少,且为稠密图,则用Prim算法.跟Prim算法的用途相同.时间复杂度为O(e*loge),其中e为边数. 代码: #include <stdio.h ...
- 计蒜客NOIP模拟赛(3)D1T3 任性的国王
X 国的地图可以被看作一个两行 nn 列的网格状图.现在 X 国需要修建铁路,然而该国的国王非常小气,他只想保证位于某两列之间的所有城市互相可以到达就行了,在此基础上,他希望所花费的代价最小. 铁路可 ...
- HDU 5723 Abandoned country(最小生成树+边两边点数)
http://acm.split.hdu.edu.cn/showproblem.php?pid=5723 题意:给出一个无向图,每条路都有一个代价,求出把所有城市连通的最小代价.在此基础上,国王会从这 ...
- 算法笔记_180:历届试题 国王的烦恼(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛.两个小岛间可能存在多座桥连接.然而,由于海水冲 ...
- 【BZOJ3551】[ONTAK2010]Peaks加强版 最小生成树+DFS序+主席树
[BZOJ3545][ONTAK2010]Peaks Description 在Bytemountains有N座山峰,每座山峰有他的高度h_i.有些山峰之间有双向道路相连,共M条路径,每条路径有一个困 ...
- 【2018 ICPC亚洲区域赛徐州站 A】Rikka with Minimum Spanning Trees(求最小生成树个数与总权值的乘积)
Hello everyone! I am your old friend Rikka. Welcome to Xuzhou. This is the first problem, which is a ...
随机推荐
- C字符串总结+字符串库实现(增,改,删,查):
<一>,字符指针&字符数组 两者形式: 字符指针:char *p; 字符数组:char str[100]; 两者区别: 字符指针p是变量: 字符数组str是常量: 访问元素方式: ...
- PHP设计模式之:外观模式
外观模式: 外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用: 外观模式又称为门面模 ...
- 对装饰模式(Decorator)的解读
看过好多对装饰模式的讲解,他们几乎都有一句相同的话:对现有类功能的扩展.不知道大家怎么理解这句话的,之前我把”对功能的扩展“理解成”加功能=加方法“,比如Person类本来有两个功能:Eat 和 Ru ...
- 读书笔记之 - javascript 设计模式 - 门面模式
门面模式有俩个作用: 简化类的接口 消除类与使用它的客户代码之间的耦合 在javascript中,门面模式常常是开发人员最亲密的朋友.它是几乎所有javascript库的核心原则,门面模式可以使库提供 ...
- LINUX命令行操作
Linux 命令行快捷键 7条回复 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令.Bang(!)命令.控制命令等.让basher更有效率. 说明 Ctrl – k: 先按住 ...
- Ajax请求ashx一般处理程序实现文件下载
具体功能为,在文件数据列表中选择一行,点击表格上方的下载按钮,下载文件.由于表格中不包含文件路径,只能取到在数据库表中的ID,所以具体实现就是这样:首先点击一行,获取点击的一行数据的ID,用Ajax传 ...
- ng-form
form提供的属性都是用来表示表单的验证状态的,包括:$pristine(表单没有填写记录).$dirty(表单有填写记录).$valid(通过验证).$invalid(未通过验证).$error(验 ...
- Sublime Text 2中前端必备的常用插件
Sublime Text 2安装的插件和所有预置的插件全部在Packages文件下,可以直接通过”preferences“—>”Browse Pakcages“来访问. Sublime Text ...
- tabBar选中底部弹出窗口
//UITabBarControllerDelegate方法 - (BOOL)tabBarController:(UITabBarController *)tabBarController shoul ...
- Ubuntu 误改/etc/sudoers 文件权限
添加用户时不小心修改了/etc/sudoers 权限,结果不能sudo了,Ubuntu默认关闭root帐户,结果傻X了,无法改回了. 方法如下: 1.重启机器,开机按ESC,进入恢复模式 2.此时,磁 ...