HDU 1173 采矿(某类水题)
来源:互联网 发布:韩顺平js笔记 编辑:程序博客网 时间:2024/04/29 10:15
首先,先看这一题
简易版之最短距离
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14427 Accepted Submission(s): 6389
Problem Description
寒假的时候,ACBOY要去拜访很多朋友,恰巧他所有朋友的家都处在坐标平面的X轴上。ACBOY可以任意选择一个朋友的家开始访问,但是每次访问后他都必须回到出发点,然后才能去访问下一个朋友。
比如有4个朋友,对应的X轴坐标分别为1, 2, 3, 4。当ACBOY选择坐标为2的点做为出发点时,则他最终需要的时间为 |1-2|+|2-2|+|3-2|+|4-2| = 4。
现在给出N个朋友的坐标,那么ACBOY应该怎么走才会花费时间最少呢?
比如有4个朋友,对应的X轴坐标分别为1, 2, 3, 4。当ACBOY选择坐标为2的点做为出发点时,则他最终需要的时间为 |1-2|+|2-2|+|3-2|+|4-2| = 4。
现在给出N个朋友的坐标,那么ACBOY应该怎么走才会花费时间最少呢?
Input
输入首先是一个正整数M,表示M个测试实例。每个实例的输入有2行,首先是一个正整数N(N <= 500),表示有N个朋友,下一行是N个正整数,表示具体的坐标(所有数据均<=10000).
Output
对于每一个测试实例,请输出访问完所有朋友所花的最少时间,每个实例的输出占一行。
Sample Input
22 2 4 3 2 4 6
Sample Output
24
Source
2006/1/15 ACM程序设计期末考试
只要将所有的坐标排序,取中位数即可
#include<stdio.h>#include<iostream>#include<string>#include<string.h>#include<cstdlib>#include<algorithm>#include<map>#include<cmath>#include<stack>#include<queue>#include<set>#include<vector>#define F first#define S second#define PI acos(-1.0)#define E exp(1.0)#define INF 0xFFFFFFF#define MAX -INF#define len(a) (__int64)strlen(a)#define mem0(a) (memset(a,0,sizeof(a)))#define mem1(a) (memset(a,-1,sizeof(a)))using namespace std;__int64 gcd(__int64 a, __int64 b) { return b ? gcd(b, a % b) : a;}__int64 lcm(__int64 a, __int64 b) { return a / gcd(a, b) * b;}int max(int a, int b) { return a > b ? a : b;}__int64 min(__int64 a, __int64 b) { return a < b ? a : b;}int a[510];int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout); int T,n; scanf("%d",&T); while (T--) { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); int sum=0; for(int i=0;i<n;i++){ sum+=abs(a[i]-a[n/2]); } printf("%d\n",sum); }}
采矿
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3338 Accepted Submission(s): 1565
Special Judge
Problem Description
某天gameboy玩魔兽RPG。有一个任务是在一个富含金矿的圆形小岛上建一个基地,以最快的速度采集完这个小岛上的所有金矿。这个小岛上有n(0<n<1000000)个金矿,每个金矿的矿藏量是相等的。而且这个小岛的地势非常平坦,所以基地可以建在小岛的任何位置,每个金矿的采矿速度只跟矿藏到基地的路程长度有关。为了不让这个任务太无聊,游戏设计者对这个小岛施了个“魔法”,规定矿工在小岛上只能正南正北正西正东走。也就是说矿工不能斜着在岛上走。
这个小岛在一个二维直角坐标系中描述。
你的任务就是帮gameboy找一个建造基地的位置,使矿工能以最快的速度采完所有矿。
这个小岛在一个二维直角坐标系中描述。
你的任务就是帮gameboy找一个建造基地的位置,使矿工能以最快的速度采完所有矿。
Input
输入数据有多组。每组数据的第一行是一个正整数n(0<n<1000000),表示小岛上有n个金矿。在接下来的n行中,每行有两个实数x,y,表示其中一个金矿的坐标。n=0表示输入数据结束。
Output
每一组输入数据对应一行输出,输出两个实数x,y(保留小数点后两位),也就是你找到的建造基地的位置坐标。如果坐标不唯一,可以任选一个输出。
Sample Input
41.0 1.03.0 1.03.0 3.01.0 3.00
Sample Output
2.00 2.00
Source
lwg
题目变成了二维坐标,同上题一样,只需将X,Y分开单独排序,取中位数即可
#include<stdio.h>#include<iostream>#include<string>#include<string.h>#include<cstdlib>#include<algorithm>#include<map>#include<cmath>#include<stack>#include<queue>#include<set>#include<vector>#define F first#define S second#define PI acos(-1.0)#define E exp(1.0)#define INF 0xFFFFFFF#define MAX -INF#define len(a) (__int64)strlen(a)#define mem0(a) (memset(a,0,sizeof(a)))#define mem1(a) (memset(a,-1,sizeof(a)))using namespace std;__int64 gcd(__int64 a, __int64 b) { return b ? gcd(b, a % b) : a;}__int64 lcm(__int64 a, __int64 b) { return a / gcd(a, b) * b;}int max(int a, int b) { return a > b ? a : b;}__int64 min(__int64 a, __int64 b) { return a < b ? a : b;}double x[1000010];double y[1000010];int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout); int n; while (scanf("%d",&n)!=EOF&&n) { for(int i=0;i<n;i++) { scanf("%lf%lf",&x[i],&y[i]); } sort(x,x+n); sort(y,y+n); printf("%.2lf %.2lf\n",x[n/2],y[n/2]); }}
0 0
- HDU 1173 采矿(某类水题)
- hdu 1173 采矿
- HDU 1173 采矿
- hdu 1173 采矿
- HDU 1173 采矿
- HDU 1173 采矿
- HDU 1173 采矿 计算几何
- 杭电1173(采矿)
- hdoj 采矿 1173 (数学中位数)
- 杭电1173采矿
- hdoj-1173-采矿
- hdoj 1173 采矿
- HDOJ 采矿(java)
- 采矿
- 采矿
- 杭电OJ——1173 采矿(水题)
- 杭电1173 采矿java解题
- ssoj1944采矿(oremine)(最长链)
- 【模板】【bzoj2733】[HNOI2012]永无乡 Treap
- UITableView /cell上的button,动态配置tableView的cell的高度(效果为点击加载更多,cell加载所有内容,反之,只加载3行)
- Hadoop实现单词出现次数排序
- Android性能与功耗监测工具
- easyUI 验证
- HDU 1173 采矿(某类水题)
- 优化算法-遗传算法
- android中的http通讯(2)
- 【iOS】OC-AFNetworking 2.0 跟踪文件上传进度
- 互联网改变了人类的生活方式
- 利用二重循环输出字符的特殊排列
- Java访问权限
- nodejs多线程简介
- MySQL因非正常关机的情况下,导致无法正常启动的临时解决办法