畅通工程再续(MST)
Description
Input
每组数据首先是一个整数C(C <= 100),代表小岛的个数,接下来是C组坐标,代表每个小岛的坐标,这些坐标都是 0 <= x, y <= 1000的整数。
Output
Sample Input
2
10 10
20 20
3
1 1
2 2
1000 1000
Sample Output
oh!
#include<stdio.h>
#include<algorithm>
#include<math.h>
#define Max 0x3f3f3f3f
using namespace std;
struct island
{
double x , y ;
}land[]; int n , fa[] ;
int in ; struct edge
{
int u , v ;
double w ;
}e[*+]; void binary (island a , int key , int l , int r )
{
if ( l >= r) {
return ;
}
int mid = (l + r) / ;
binary (a , key , l , mid ) ;
binary (a , key , mid + , r ) ;
double dis = (a.x - land[mid].x) * (a.x - land[mid].x) + (a.y - land[mid].y) * (a.y - land[mid].y) ; if ( dis <= * && dis >= * ) {
e[in].u = key ;
e[in].v = mid ;
e[in].w = sqrt (dis) ;
in++ ;
}
} bool cmp (edge a , edge b)
{
return a.w < b.w ;
} int find (int x)
{
return fa[x] == x ? x : find (fa[x]) ;
} void kruskal ()
{
sort ( e + , e + in , cmp ) ;
int x , y ;
double ans = ;
for (int i = ; i < in ; i++) {
x = find (e[i].u) ;
y = find (e[i].v) ;
if ( x != y) {
ans += e[i].w ;
fa[x] = y ;
}
}
printf ("%.1f\n" , 100.0 * ans ) ;
}
int main ()
{
// freopen ("a.txt" , "r" , stdin ) ;
int T;
scanf ("%d" , &T ) ;
int x , y ;
int cnt ;
while (T--) {
in = ;//RE 's reason
cnt = ;
scanf ("%d" , &n ) ;
for (int i = ; i <= n ; i++)
fa[i] = i ;
for (int i = ; i <= n ; i++) {
scanf ("%lf%lf" , &land[i].x , &land[i].y ) ;
}
for (int i = ; i < n ; i++ ) {//建立 u , v , w
binary ( land[i] , i , i + , n + ) ;
}
//To determine whether the connectivity
for (int i = ; i < in ; i++) {
x = find (e[i].u) ;
y = find (e[i].v) ;
fa[x] = y;
}
for (int i = ; i <= n ; i++) {
if (fa[i] == i )
cnt++ ;
if (cnt > )
break ;
} for (int i = ; i <= n ; i++)
fa[i] = i ; if ( cnt > )
puts ("oh!") ;
else
kruskal () ;
}
return ;
}
每组测试前要把edge的下标in初始化,为此re
畅通工程再续(MST)的更多相关文章
- hdu-1875 畅通工程再续---MST
题目链接: https://vjudge.net/problem/HDU-1875 题目大意: 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小 ...
- hdu1875 畅通工程再续 最小生成树并查集解决---kruskal
http://acm.hdu.edu.cn/showproblem.php?pid=1875 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...
- HDU 1875 畅通工程再续 (prim最小生成树)
B - 畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit S ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 1875 畅通工程再续 (最小生成树)
畅通工程再续 题目链接: http://acm.hust.edu.cn/vjudge/contest/124434#problem/M Description 相信大家都听说一个"百岛湖&q ...
- HDU1875——畅通工程再续(最小生成树:Kruskal算法)
畅通工程再续 Description相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当 ...
- 畅通工程再续--hdu1875
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU1875 畅通工程再续 (并查集)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
- HDU 1875:畅通工程再续(最小生成树)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
随机推荐
- C#基础之IL
1.实例解析IL 作为C#程序员,IL的作用不言而喻,首先来看一个非常简单的程序和它的IL解释图,通过这个程序的IL指令来简单的了解常见的IL指令是什么意思. class Program { stat ...
- 解决angular2页面刷新后报404错误
如果你的angular项目部署到一个tomcat容器里面,localhost:8080是JavaWeb的主页,localhost:8080/driver/login是你angular2项目的登陆地址. ...
- JS开发HTML5游戏《神奇的六边形》(四)
近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...
- hello-weapp 微信小程序最简示例教程
打开微信小程序官方开发文档,最好全篇看一遍,基本上就会了. 点击文档中 工具 选项卡中 下载工具页面 下载对应系统版本的微信开发者工具 注意:脱离微信开发者工具是不能调试的 好了,安装下工具即可打开, ...
- 理解C#事件
前面文章中介绍了委托相关的概念,委托实例保存这一个或一组操作,程序中将在某个特定的时刻通过委托实例使用这些操作. 如果做过GUI程序开发,可能对上面的描述会比较熟悉.在GUI程序中,单击一个butto ...
- SQL删除重复的记录(只保留一条)
首先新建表: --创建示例表 CREATE TABLE t ( id ,) PRIMARY KEY, a ), b ) ) --插入数据 INSERT INTO t SELECT 'aa','bb' ...
- MySQL 5.6 my.cnf 参数说明
# 以下选项会被MySQL客户端应用读取. # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容. # 如果你想你自己的MySQL应用程序获取这些值. # 需要在MySQL客户端库初始化的时 ...
- 这些天自身努力的体会,关于java方面的
以前也是接触过java,这学期的软件工程课和周围同学各种比赛取得不错的成绩,确实令人倍感压力.为此这几天使劲脑补了一下java的知识,甚至不惜为此翘课,了解了java中的网络编程,对于sokectse ...
- 【HDU 3966】Aragorn's Story(未完待续)
我无限Runtime Error(ACCESS_VIOLATION).不知道怎么搞得/(ㄒoㄒ)/~~ #pragma comment(linker, "/STACK:1024000000, ...
- 未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”
未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089” 使用nu ...