畅通工程再续(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 ...
随机推荐
- Flex的正则表达式匹配速度与手工代码的比较
flex是一个词法分析器生成器,它是编译器和解释器编程人员的常用工具之一.flex的程序主要由一系列带有指令(称为动作代码)的正则表达式组成.在匹配输入时,flex会将所有的正则表达式翻译成确定性有穷 ...
- 第一章 Javscript的数据类型
任何编程语言,都会讲到数据类型,那么我在这里也简述下Js的数据类型,在js里判断一个变量的数据类型用typeof() 简单数据类型undefined: 代表一切未知的事物,啥都没有,无法想象,代码 ...
- Javascript写入txt和读取txt文件示例
1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Var fso=new ActiveXObject(Scripting.FileSystem ...
- Tomcat 在win7/win8 系统下tomcat-users.xml.new(拒绝访问)解决方法
tomcat启动报错No UserDatabase component found under key UserDatabase 也可以这样处理 Tomcat 在win7/win8 系统下tomcat ...
- java.io.stream
1. package com.io.Stream; import java.io.*; public class NyFileInputStream1 { /** * 读取文件的streamIO * ...
- OC基础--self关键字&super关键字
PS:OC中的self关键字可以与C#中的this关键字区分记忆,虽然区别还是很大的. OC中的super关键字指的是父类指针 一.self关键字必须了解的知识: 1.使用场合:只能用在方法中(对象方 ...
- 警告: [SetContextPropertiesRule]{Context} Setting property 'source' to 'org.eclipse.jst.jee.server:CurrencyClientServe
有的说: 在Servers视图里双击创建的server,然后在其server的配置界面中选中"Publish module contexts to separate XML files&qu ...
- Java-优化技术
常用的: 1.优化循环.通过重新组织重复的子表达式来提高循环体的运行性能. 2减少使用对象的数量来提高运行性能. 3.缩减网络传输数据来缩短等待时间. 其他: 1.采用对象池技术,提高对象的利用效率. ...
- nginx&apache比较
1.nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx ...
- codeforce 626E(二分)
E. Simple Skewness time limit per test 3 seconds memory limit per test 256 megabytes input standard ...