hdu 1173 采矿

  水题,小白练手。

  想法:即是最近距离,并且只允许走直线,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;
}
View Code

 

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

posted @ 2016-08-11 16:41  热风轻浮  阅读(101)  评论(0)    收藏  举报