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条路的距离之和最短.最小生成树是不是?不对,还有呢.接着,一个自称徐福的游 ...
随机推荐
- java.sql.SQLException: ORA-28001: the password has expired。
java.sql.SQLException: ORA-28001: the password has expired. Oracle11g的密码过期. 原因:是由于oracle11g中默认在defau ...
- YII中的表单挂件
利用助手(widget)在页面实现表单 控制器中 <?php class YiiFormController extends Controller { public function actio ...
- linux关闭声音
对于CentOS/Redhat/RHEL/Fedora系统,使用root身份执行:echo "alias pcspkr off" >> /etc/modprobe.co ...
- 互联网金融爬虫怎么写-第一课 p2p网贷爬虫(XPath入门)
版权声明:本文为博主原创文章,未经博主允许不得转载. 相关教程: 手把手教你写电商爬虫-第一课 找个软柿子捏捏 手把手教你写电商爬虫-第二课 实战尚妆网分页商品采集爬虫 手把手教你写电商爬虫-第三课 ...
- datagrid合并行列--并不能影响序号列内容...(formatter的锅.)
datagrid合并行列 //datagrid组件. $('#id_dailylist_dg').datagrid({ //url:'datagrid_data.json', columns:[[ { ...
- Codevs 1048 石子归并
1048 石子归并 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合 ...
- (LightOJ 1004) Monkey Banana Problem 简单dp
You are in the world of mathematics to solve the great "Monkey Banana Problem". It states ...
- STUN/TURN/ICE协议在P2P SIP中的应用(一)
1 说明 本文详细描述了基于STUN系列协议实现的P2P SIP电话过程,其中涉及到了SIP信令的交互,P2P的原理,以及STUN.TURN.ICE的协议交互 本文所提到的各个服务 ...
- 设计模式之开篇(C#语法)
很长时间没有写文章了,前段时间写的C#语法糖分享得到有很多朋友支持,这个也使得我有信心继续分享下去,在这里非常感谢大家!这次开始给大家分享一下设计模式,我个人觉得设计模式也对于我们提高个人技术水平来说 ...
- zabbix 配置
终于把zabbix配置好了.可能还有待优化 我主要参考了几个链接 http://lnmp.org/install.html 一键安装lnmp http://blog.unix178.com/2 ...