题目大意
给定n个点,找到一个点使这个点到其他所有点的切比雪夫距离之和最小。
题解
我们知道切比雪夫距离和曼哈顿距离的转化公式
\(1\)表示切比雪夫距离,\(2\)表示曼哈顿距离 我们有:\(x_1 = x_2 - y_2,y_1 = x_2 + y_2\)\(x_2 = \frac{x_1 + y_1}{2},y_2 = \frac{x_1 - y_1}{2}\) 所以现在转化成曼哈顿距离了 所以我们直接枚举点即可 什么?你问我怎么计算距离和?#include#include #include using namespace std;typedef long long ll;inline void read(int &x){ x=0;char ch;bool flag = false; while(ch=getchar(),ch<'!');if(ch == '-') ch=getchar(),flag = true; while(x=10*x+ch-'0',ch=getchar(),ch>'!');if(flag) x=-x;}inline int cat_max(const int &a,const int &b){return a>b ? a:b;}inline int cat_min(const int &a,const int &b){return a x+y) ans = x+y; }printf("%lld\n",ans>>1); getchar();getchar(); return 0;}