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/32768 K (Java/Others)
Total Submission(s): 5023 Accepted Submission(s): 1749
kingdoms and became the first emperor of a unified China in 221 BC. That was Qin dynasty ---- the first imperial dynasty of China(not to be confused with the Qing Dynasty, the last dynasty of China). So Ying Zheng named himself "Qin Shi Huang" because "Shi
Huang" means "the first emperor" in Chinese.

Qin Shi Huang undertook gigantic projects, including the first version of the Great Wall of China, the now famous city-sized mausoleum guarded by a life-sized Terracotta Army, and a massive national road system. There is a story about the road system:
There were n cities in China and Qin Shi Huang wanted them all be connected by n-1 roads, in order that he could go to every city from the capital city Xianyang.
Although Qin Shi Huang was a tyrant, he wanted the total length of all roads to be minimum,so that the road system may not cost too many people's life. A daoshi (some kind of monk) named Xu Fu told Qin Shi Huang that he could build a road by magic and that
magic road would cost no money and no labor. But Xu Fu could only build ONE magic road for Qin Shi Huang. So Qin Shi Huang had to decide where to build the magic road. Qin Shi Huang wanted the total length of all none magic roads to be as small as possible,
but Xu Fu wanted the magic road to benefit as many people as possible ---- So Qin Shi Huang decided that the value of A/B (the ratio of A to B) must be the maximum, which A is the total population of the two cites connected by the magic road, and B is the
total length of none magic roads.
Would you help Qin Shi Huang?
A city can be considered as a point, and a road can be considered as a line segment connecting two points.
For each test case:
The first line is an integer n meaning that there are n cities(2 < n <= 1000).
Then n lines follow. Each line contains three integers X, Y and P ( 0 <= X, Y <= 1000, 0 < P < 100000). (X, Y) is the coordinate of a city and P is the population of that city.
It is guaranteed that each city has a distinct location.
2 4 1 1 20 1 2 30 200 2 80 200 1 100 3 1 1 20 1 2 30 2 2 40
65.00 70.00
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<cmath>
- #define INF 0x3f3f3f3f*1.0
- using namespace std;
- double getdistence(int x1,int y1,int x2,int y2){
- double xx=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
- return xx;
- }
- int n;
- double kill;
- struct Node{
- int x,y,p;
- }node[1111];
- bool visit[1111][1111],vis[1111];
- double dis[1111][1111],path[1111][1111];
- int pre[1111];
- void init(){
- memset(visit,0,sizeof(visit));
- memset(vis,0,sizeof(vis));
- memset(path,0,sizeof(path));
- kill=0.0;
- for(int i=1;i<=n;i++)
- scanf("%d %d %d",&node[i].x,&node[i].y,&node[i].p);
- for(int i=1;i<=n;i++)
- for(int j=1;j<=n;j++)
- dis[i][j]=getdistence(node[i].x,node[i].y,node[j].x,node[j].y);
- }
- void prim(){
- double dist[1111];
- vis[1]=1;
- for(int i=1;i<=n;i++){
- dist[i]=dis[1][i];
- pre[i]=1;
- }
- int p,k;
- p=-1;
- double minn;
- for(int i=1;i<n;i++){
- minn=INF;
- for(int j=1;j<=n;j++){
- if(!vis[j]&&minn>dist[j]){
- minn=dist[j];
- k=j;
- }
- }
- visit[k][pre[k]]=visit[pre[k]][k]=1;
- kill+=minn;
- vis[k]=1;
- for(int j=1;j<=n;j++){
- if(!vis[j]&&dist[j]>dis[k][j]){
- dist[j]=dis[k][j];
- pre[j]=k;
- }
- if(vis[j]&&j!=k){
- path[j][k]=path[k][j]=max(path[j][pre[k]],dist[k]);
- }
- }
- }
- }
- void solve(){
- double ans=0.0;
- for(int i=1;i<=n;i++){
- for(int j=1;j<=n;j++){
- if(j!=i){
- if(visit[i][j])
- ans=max(ans,(node[i].p+node[j].p)*1.0/(kill-dis[i][j]));
- else
- ans=max(ans,(node[i].p+node[j].p)*1.0/(kill-path[i][j]));
- }
- }
- }
- printf("%.2f\n",ans);
- }
- int main(){
- int t;
- scanf("%d",&t);
- while(t--){
- scanf("%d",&n);
- init();
- prim();
- solve();
- }
- return 0;
- }
HDU 4081 Qin Shi Huang's National Road System 最小生成树的更多相关文章
- HDU 4081 Qin Shi Huang's National Road System(最小生成树/次小生成树)
题目链接:传送门 题意: 有n坐城市,知道每坐城市的坐标和人口.如今要在全部城市之间修路,保证每一个城市都能相连,而且保证A/B 最大.全部路径的花费和最小,A是某条路i两端城市人口的和,B表示除路i ...
- HDU4081 Qin Shi Huang's National Road System【prim最小生成树+枚举】
先求出最小生成树,然后枚举树上的边,对于每条边"分别"找出这条割边形成的两个块中点权最大的两个 1.因为结果是A/B.A的变化会引起B的变化,两个制约.无法直接贪心出最大的A/B. ...
- 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 树的基本性质 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——————【次小生成树、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 【次小生成树】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4081 题意 给出n个城市的坐标 以及 每个城市里面有多少人 秦始皇想造路 让每个城市都连通 (直接或者 ...
随机推荐
- 2019-03-25 Python Pandas 基本操作
新建表 data1 = { "name": ["Tom", "Bob", "Mary", "James&quo ...
- AjAX 常用参数
1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...
- java内存管理之内存模型
1,运行时数据区域 1. 程序计数器 (program counter register) 2. Java虚拟机栈 (jvm stack) 3. 本地方法栈 (native method stack) ...
- Java IO(三) 之 FileInputStream
前言: 对于文件系统中的文件.都能够使用FileInputStream流类以二进制的形式进行读取.可是因为Java本身的定位在JVM之上,没有处理计算机底层的能力.因此一些涉及底层处理的方法都是使用n ...
- UVALive - 2031 Dance Dance Revolution 三维dp
题目大意:有一个胖子在玩跳舞机.刚開始的位置在(0,0).跳舞机有四个方向键,上左下右分别相应1,2,3,4.如今有下面规则 1.假设从0位置移动到随意四个位置,消耗能量2 2.假设从非0位置跳到相邻 ...
- 嵌入式外部中断控制编程方法论—比較CC2541(51核)和S5PV210(ARM核)
这是一篇阐述怎样对嵌入式SOC外部中断进行控制编程的方法论文章.希望读者理解本篇文章后.能够具备对市场上全部已经面世和将来面世的嵌入式芯片的外部中断进行控制编程的能力. 笔者原创的技术分享一直都恪守下 ...
- 苹果要求全部新app以及版本号更新必须支持iOS 8 SDK和64-bit
2014年10月20日.苹果官方公布了一则新闻,新闻内容例如以下: Starting February 1, 2015, new iOS apps uploaded to the App Store ...
- 英语影视台词---七、THE GREAT GATSBY QUOTES
英语影视台词---七.THE GREAT GATSBY QUOTES 一.总结 一句话总结:了不起的盖茨比 1.“So we beat on, boats against the current, b ...
- Linux下grub的配置文件
GRUB(统一引导装入器)是基本的Linux引导装入器. 其有四个作用,如下: 1.选择操作系统(如果计算机上安装了多个操作系统). 2.表示相应引导文件所在的分区. 3.找到内核. 4.运行初始内存 ...
- [JZOJ 5894] [NOIP2018模拟10.5] 同余方程 解题报告(容斥)
题目链接: http://172.16.0.132/senior/#contest/show/2523/0 题目: 题解:(部分内容来自https://blog.csdn.net/gmh77/arti ...