1. 程式人生 > >杭電acm 1173

杭電acm 1173

ace 學習 一個點 bsp esp != 所有 fin 數學

從1173這道題,我學習到了一個數學思想......

假設所有的點都在一個直線上,要求一個點,到所有點的距離之和最短,那麽,把值最大的點和值最小的點連成一條直線,這條直線上的所有點到所有的點的距離之和相等且都是最小值。這道題目是上面定理的一個推廣,指的是x軸和y軸兩條線。如果我們將x,y軸上的最大值和最小值都連接起來,形成一個矩形,那麽矩形裏面所有的值都滿足題意。在這裏我們取最大最小值的中間值為解。

#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 1000010
 
double arrx[MAX],arry[MAX];
 
 
int main() { int i,j,num; while(cin>>num && num!=0) { for(i=0;i<num;i++) scanf("%lf%lf",&arrx[i],&arry[i]); sort(arrx,arrx+num); sort(arry,arry+num); printf("%.2f %.2f\n",arrx[(num-1)/2],arry[(num-1)/2]); } return 0; }

杭電acm 1173