HDU 4081 Qin Shi Huang's National Road System
步骤是先求最小生成树,然后选两个不同的点,遍历所有的这样的点,选出两点人口比较大,而且连通两点的边的最大边比较大的情况。
因此要对i,j点连接起来的边进行遍历。
#include<stdio.h>
#include<string.h>
#include<math.h>
#define N 1010
#define max(a,b) ((a)>(b)?(a):(b))
#define INF 999999999 double map[N][N],lowcost[N],cost[N][N];
int vis[N];/*-1表示该点已经加入,非0表示i和vis[i]的值表示的点构成一条短边*/
int n;
typedef struct
{
double x,y,w;
} Point;
Point point[N]; double dis(Point a,Point b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
} void input(void)
{
int i,j;
scanf("%d",&n);
for(i=; i<n; i++)
scanf("%lf%lf%lf",&point[i].x,&point[i].y,&point[i].w);
for(i=; i<n-; i++)
for(j=i+; j<n; j++)
map[i][j]=map[j][i]=dis(point[i],point[j]);
} double prim(void)
{
memset(cost,,sizeof(cost));
memset(vis,,sizeof(vis));
double ans=;
int e=,i,j;/*e=0表示首先将点0加入集合U*/
vis[]=-;/*e用来记录新加入的顶点*/
for(i=; i<n; i++)
lowcost[i]=1.0*INF;
for(i=; i<n-; i++)
{
double micost=1.0*INF;
int miedge=-;
for(j=; j<n; j++)
if(vis[j]!=-)
{
double temp=map[e][j];
if(temp<lowcost[j])
{
lowcost[j]=temp;
vis[j]=e;
}
if(lowcost[j]<micost)
micost=lowcost[miedge=j];
}
ans+=micost;
cost[miedge][vis[miedge]]=cost[vis[miedge]][miedge]=map[vis[miedge]][miedge];
for(j=; j<n; j++)
if(vis[j]==-)
cost[j][miedge]=cost[miedge][j]=max(cost[miedge][vis[miedge]],cost[j][vis[miedge]]);
vis[e=miedge]=-;
}
return ans;
} void solve(void)
{
int i,j;
double mst=prim();
/* printf("%f\n",mst);*/
double ans=-;
for(i=; i<n-; i++)
for(j=i+; j<n; j++)
{
double t=(point[i].w+point[j].w)/(mst-cost[i][j]);
ans=max(ans,t);
}
printf("%.2f\n",ans);
} int main(void)
{
int t;
scanf("%d",&t);
while(t--)
{
input();
solve();
}
return ;
}
HDU 4081 Qin Shi Huang's National Road System的更多相关文章
- HDU 4081 Qin Shi Huang's National Road System 最小生成树+倍增求LCA
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4081 Qin Shi Huang's National Road System Time Limit: ...
- HDU 4081 Qin Shi Huang's National Road System 次小生成树变种
Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...
- hdu 4081 Qin Shi Huang's National Road System (次小生成树)
Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...
- hdu 4081 Qin Shi Huang's National Road System (次小生成树的变形)
题目:Qin Shi Huang's National Road System Qin Shi Huang's National Road System Time Limit: 2000/1000 M ...
- HDU 4081—— Qin Shi Huang's National Road System——————【次小生成树、prim】
Qin Shi Huang's National Road System Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3 ...
- hdu 4081 Qin Shi Huang's National Road System 树的基本性质 or 次小生成树思想 难度:1
During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in Ch ...
- HDU - 4081 Qin Shi Huang's National Road System 【次小生成树】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4081 题意 给出n个城市的坐标 以及 每个城市里面有多少人 秦始皇想造路 让每个城市都连通 (直接或者 ...
- hdu 4081 Qin Shi Huang's National Road System(次小生成树prim)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4081 题意:有n个城市,秦始皇要修用n-1条路把它们连起来,要求从任一点出发,都可以到达其它的任意点. ...
- HDU 4081 Qin Shi Huang's National Road System [次小生成树]
题意: 秦始皇要建路,一共有n个城市,建n-1条路连接. 给了n个城市的坐标和每个城市的人数. 然后建n-2条正常路和n-1条魔法路,最后求A/B的最大值. A代表所建的魔法路的连接的城市的市民的人数 ...
- hdu 4081 Qin Shi Huang's National Road System(最小生成树+dp)2011 Asia Beijing Regional Contest
同样是看别人题解才明白的 题目大意—— 话说秦始皇统一六国之后,打算修路.他要用n-1条路,将n个城市连接起来,并且使这n-1条路的距离之和最短.最小生成树是不是?不对,还有呢.接着,一个自称徐福的游 ...
随机推荐
- 学习笔记_过滤器应用_1(分ip统计网站的访问次数)
分ip统计网站的访问次数 ip count 192.168.1.111 2 192.168.1.112 59 统计工作需要在所有资源之前都执行,那么就可以放到Filter中了. 我们这个过滤器不打算做 ...
- facebook登录(集成FBSDKLoginKit) result的isCancelled总是YES token为nil
只需要在AppDelegate如下函数添加: - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDict ...
- O-C相关06:self和super关键字介绍——self关键字
self关键字介绍 1.self和super OC 版权声明:本文为博主原创文章,未经博主允许不得转载. posted @ 2015-08-04 12:46 王刚韧(wanghy_iOS) 阅读(.. ...
- 执行mysql脚本
方法1: mysql -uroot -p123456 -Ddatabasename < sql文件路径 方法2: source 路径全名 \. 路径全名
- 12_复杂查询01_Mapper代理实现
[工程截图] [代码实现] [user.java] package com.Higgin.Mybatis.po; import java.util.Date; public class User { ...
- 新建DragonBones动画文件
本篇文章由:http://www.sollyu.com/new-dragonbones-animation-file/ 说明 我在网上找了很久都没找到关于怎么创建一个DragonBones动画的文章, ...
- ajax跨域访问 webservice
前端代码 $.ajax({ type: "POST", url: "http://localhost:9767/WebService1.asmx/HelloWorld?j ...
- nfs,ftp配置
一. NFS1. NFS简介NFS全称是network file systemNFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 假 ...
- notepad++插件使用说明
在进行渗透测试的过程中,经常需要分析一些js或xml文件,或者是一些url,它们多是经过压缩或编码的,看起来不方便.这里介绍几款常用的notepad++插件,会极大的方便我们的开发测试. 1 Xml ...
- 计算字符串和文件的MD5值
//计算字符串的MD5值 public string GetMD5(string sDataIn) { MD5CryptoServiceProvider md5 = new MD5CryptoServ ...