码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 1173 采矿

时间:2016-08-11 17:40:44      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

  水题,小白练手。

  想法:即是最近距离,并且只允许走直线,x和y方向上就没太大关系,那就只考虑一维就够了,一维到一个点距离最近,2n个点中找一个最近距离,应该是二分点集任意区域都可以,这点可以用样例来证明下,两次找中心即得坐标;

  代码:

#include <iostream>
#include <stdio.h>
#include  <algorithm>
using namespace std;

const int MAXN = 1000000+88;
#define ll long long
double a[MAXN],b[MAXN];

int main() {

   ll t;
   while(cin>>t&&t)
   {

    for(int i=0;i<t;i++)
    {
        scanf("%lf%lf",&a[i],&b[i]);
    }
    sort(a,a+t);
    sort(b,b+t);
    printf("%.2f %.2f\n",(double)a[t/2+t%2-1],(double)b[t/2+t%2]);
   }
    return 0;
}

  启示:二维的东西假如从某种意义上没有关系,就能变一维操作;

hdu 1173 采矿

标签:

原文地址:http://www.cnblogs.com/aishuijdemiaomiao/p/5761600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!