F - F HDU - 1173

一个邮递员每次只能从邮局拿走一封信送信。在一个二维的直角坐标系中,邮递员只能朝四个方向移动,正北、正东、正南、正西。

有n个需要收信的地址,现在需要你帮助找到一个地方建设邮局,使得邮递员送往n个地址的路程之和最短。

Input 多组输入,每组数据的第一行一个整数

n(0<n<1000000),表示地址有n个。在接下来的n行中,每行有两个实数x,y,表示其中一个收信地址的坐标。n = 0时输入结束。

(实数范围原题没给出,c++ double存储够用,运算后自行避免精度问题)

Output 每组输入,输出两个实数x,y(保留两位),代表邮局位置。如果坐标不唯一输出其中一个最优解即可。

Sample Input
4
1.0 1.0
3.0 1.0
3.0 3.0
1.0 3.0
0
Sample Output
2.00 2.00

思路

  • 分析:首先明白我们选的某个位置(x,y),无论在x轴方向,无论我们让x等于什么? 都不会影响在y轴方向的总的最小和距离,同y坐标也不会影响在x轴方向的总水平和距离,剩下的就是单独讨论水平、竖直方向的情况

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<map>
#include<string>
#include<stack>
#include<vector>
#include<queue>
using namespace std;
#define ll long long
#define INF 1e9
#define db double
const int Len = 1000005;
db x[Len];
db y[Len]; db Solve(db a[], int n)
{
sort(a + 1, a + 1 + n);
if(n % 2)
return a[n/2 + 1];
return (a[n/2] + a[n/2 + 1])/2;
} int main()
{
/* freopen("A.txt","r",stdin); */
/* freopen("Ans.txt","w",stdout); */
int n;
while(scanf("%d", &n) && n)
{ for(int i = 1; i <= n; i ++)
scanf("%lf %lf", &x[i], &y[i]);
printf("%.2f %.2f\n", Solve(x, n), Solve(y, n));
} return 0;
}

F - F HDU - 1173(二维化一维-思维)的更多相关文章

  1. php 二维转一维

    Array(    [0] => Array        (            [salesorderid] => 10001            [createdtime] =& ...

  2. Win10 UWP开发:摄像头扫描二维码/一维码功能

    这个示例演示整合了Aran和微软的示例,无需修改即可运行. 支持识别,二维码/一维码,需要在包清单管理器勾选摄像头权限. 首先右键项目引用,打开Nuget包管理器搜索安装:ZXing.Net.Mobi ...

  3. 三维码 & 二维码 & 一维码

    三维码 & 二维码 & 一维码 3D, 2D, 1D 防伪国家标准 -<结构三维码防伪技术条件> http://www.xinhuanet.com/tech/2019-12 ...

  4. HDU 3496 (二维费用的01背包) Watch The Movie

    多多想看N个动画片,她对这些动画片有不同喜欢程度,而且播放时长也不同 她的舅舅只能给她买其中M个(不多不少恰好M个),问在限定时间内观看动画片,她能得到的最大价值是多少 如果她不能在限定时间内看完买回 ...

  5. AcWing 156. 矩阵 (哈希二维转一维查询)打卡

    给定一个M行N列的01矩阵(只包含数字0或1的矩阵),再执行Q次询问,每次询问给出一个A行B列的01矩阵,求该矩阵是否在原矩阵中出现过. 输入格式 第一行四个整数M,N,A,B. 接下来一个M行N列的 ...

  6. 经典DP 二维换一维

    HDU 1024  Max Sum Plus Plus // dp[i][j] = max(dp[i][j-1], dp[i-1][t]) + num[j] // pre[j-1] 存放dp[i-1] ...

  7. Coconuts HDU - 5925 二维离散化 自闭了

    TanBig, a friend of Mr. Frog, likes eating very much, so he always has dreams about eating. One day, ...

  8. HDU 1263 二维map

    题意:给出一份水果的交易表,根据地区统计出水果的交易情况.   思路:二维map使用.   #include<cstdio> #include<string> #include ...

  9. HDU 2159 二维费用背包问题

    一个关于打怪升级的算法问题.. 题意:一个人在玩游戏老是要打怪升级,他愤怒了,现在,还差n经验升级,还有m的耐心度(为零就删游戏不玩了..),有m种怪,有一个最大的杀怪数s(杀超过m只也会删游戏的.. ...

随机推荐

  1. base64编码的图片在网页中显示

    <img @error="changeImgSrc(user)" :src="user.src" width="42" height= ...

  2. Mysql(Mariadb)数据库之Information Schema 库中GLOBAL_VARIABLES表 and SESSION_VARIABLES 表分析

    Information Schema GLOBAL_VARIABLES and SESSION_VARIABLES Tables The Information Schema GLOBAL_VARIA ...

  3. 第二篇:如何安装Linux,虚拟机安装Linux

    安装Linux的方法挺多,但是这里咱们只说一种:如何在虚拟机里安装运行Linux.     想必看此类文章的都是小白,所以下面我就写的通俗易懂点.     第一步:下载虚拟机软件.(虚拟机软件是啥?它 ...

  4. 洛谷P1000超级马里奥的神奇解法

    话说上过洛谷的都知道,有一道经典例题P1000超级马里奥,这一题,可以说是非常简单非常经典,但是就算如此,还是可以人才辈出,我是个比较循规蹈矩的人(雾),所以我的代码就比较平常,也就是直接输出了所要求 ...

  5. 今天对C语言不常用的小东西的了解

    今天又翻了C语言的书,看到const语句,一时间想不起来到底是干嘛的,看语句const   int   a=1;明白了这是一个支持常量指定类型的定义常量的关键字,作用几乎与#define一毛一样,但# ...

  6. yield 语法备忘录

    yield 语法备忘录     yield 语法备忘录 语法 .net yield 读作:“一有得” 英式发音 皮一下~ yield 关键字向编译器指示它所在的方法是迭代器块. 编译器生成一个类来实现 ...

  7. EPX-Studio调用Dll模块

    procedure TForm1.BitBtn1Click(Sender: TObject); var REP : IExcelPanelXDisp; modulePath:string; begin ...

  8. 公钥体系(PKI)等密码学技术基础

    公钥体系(PKI)等密码学技术基础 公钥体系(Public Key Infrastructure, PKI)的一些概念 对称密码算法, 典型算法:DES, AES 加解密方共用一个密钥 加/解密速度快 ...

  9. 采用最简单的方式在ASP.NET Core应用中实现认证、登录和注销

    在安全领域,认证和授权是两个重要的主题.认证是安全体系的第一道屏障,是守护整个应用或者服务的第一道大门.当访问者请求进入的时候,认证体系通过验证对方的提供凭证确定其真实身份.认证体系只有在证实了访问者 ...

  10. vue one

    目录 复习 Vue框架 Vue的优点 Vue的使用 vue完成简单的事件 vue操作简单样式 小结 指令 文本指令 事件指令 属性指令 条件指令 复习 """ 1.BBS ...