N - 畅通工程再续 - hdu 1875
Description
Input
每组数据首先是一个整数C(C <= 100),代表小岛的个数,接下来是C组坐标,代表每个小岛的坐标,这些坐标都是 0 <= x, y <= 1000的整数。
Output
Sample Input
2 2 10 10 20 20 3 1 1 2 2 1000 1000
Sample Output
1414.2 oh!
************************************注意:不能用int提高精度判定,只能使用double..要不就会WA#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<math.h>
using namespace std; const int maxn = ;
const double oo = 0x7fffffff; double G[maxn][maxn];
struct point{int x, y;}p[maxn]; double Len(point a, point b)//求两个小岛的距离,不合法返回oo
{
int x = a.x-b.x;
int y = a.y-b.y;
double l = sqrt(x*x + y*y); if(l>=10.0 && l<=1000.0)
return l;//合法范围
return oo;
}
double Prim(int N)
{
int vis[maxn]={, };
int i, T = N-;
double dist[maxn], ans = ; for(i=; i<=N; i++)
dist[i] = G[][i];
while(T--)
{
int k = -;
double mini = oo; for(i=; i<=N; i++)
{
if(!vis[i] && mini > dist[i])
mini = dist[i], k=i;
} if(k == -)return -;
vis[k] = true, ans += mini; for(i=; i<=N; i++)if(!vis[i])
dist[i] = min(dist[i], G[k][i]);
} return ans;
} int main()
{
int T; scanf("%d", &T); while(T--)
{
int i, j, N; scanf("%d", &N); for(i=; i<=N; i++)
scanf("%d%d", &p[i].x, &p[i].y); for(i=; i<=N; i++)
for(j=i; j<=N; j++)
{
if(j == i)G[i][j] = 0.0;
else G[i][j] = G[j][i] = Len(p[i], p[j]);
} double ans = Prim(N); if(ans < )
printf("oh!\n");
else
printf("%.1f\n", ans* );
} return ; }
N - 畅通工程再续 - hdu 1875的更多相关文章
- (最小生成树) 畅通工程再续 -- HDU --1875
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1875 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- 畅通工程再续 HDU - 1875
相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政 ...
- HDU 1875 畅通工程再续 (prim最小生成树)
B - 畅通工程再续 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit S ...
- hdu 1875 畅通工程再续(prim方法求得最小生成树)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1875 /************************************************* ...
- 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 ...
- HDU 1875:畅通工程再续(最小生成树)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU 1875 畅通工程再续(kruskal)
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU - 1875_畅通工程再续
畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Desc ...
随机推荐
- POJ 1696 Space Ant 卷包裹法
Space Ant Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 3316 Accepted: 2118 Descrip ...
- 什么是mimeType?
因特网多媒体邮件扩展标示内容是什么格式.告诉浏览器或者server如何解析该数据http的请求和相应都含有一个mimeType字段 =>content-type(通用首部)
- Ci 简单分页,保证能实现
某晚,自己写项目的时候去找资料,关于CI分页的, 发现百度出来的前几名的基本都是写的都是垃圾, 要么是实现不了,要么就是坑逼 所以我自己在这里写一个,不是很完美,只是说是简单的实现了原理 有了最基本的 ...
- 分页技术之PageDataSource类
之前给大家介绍了分页技术之Gridview控件,今天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现. 前台只需要拖出一个Repeater控件来绑定要显示 ...
- Maven 安装记
java初学者 昨天通m2e插件把maven项目导入eclipse的时候各种bug,看了各家技术博客,决定安装maven好好了解下. 安装maven也是一波三折的,先是看各种安装指导,结果环境变量都没 ...
- [Python笔记]第四篇:内置函数
本篇主要内容:内置函数 函数 参考:https://docs.python.org/3.5/library/functions.html 内置函数列表 一.数学运算类 abs(x)求绝对值 >& ...
- 或许是python yield最好的答案 ?
地址:http://pyzh.readthedocs.org/en/latest/the-python-yield-keyword-explained.html#yield 译者: hit9 原文: ...
- Gnuradio 实验二
今天根据教程做了实验二 要到了两个新的模块 一个是 FFT SINK, 其作用是按频谱输出信号. 另外一个就是 GUI Notebook ,起作用就是可以将SCOPE SINK 和 FFT SINK ...
- C题
C - C Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Description Ass ...
- SQLServer -- 递归查询树结构表
需求 查询树结构表(如菜单类型表,文件夹类型表等)中一个数据节点下所有的子节点数据 声明临时表,并写入数据如下 DECLARE @tbl TABLE ( Id INT ,ParentId INT ,N ...