专栏文章

题解:P13080 [NOISG 2017] Best Places / 最佳选址

P13080题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miozak7b
此快照首次捕获于
2025/12/03 03:35
3 个月前
此快照最后确认于
2025/12/03 03:35
3 个月前
查看原文

题意

给出 nn 个人的坐标,记作标为 (Xi,Yi)(X_i,Y_i) ,选择一个点,记坐标为 (X,Y)(X,Y),使所有人的 XXi+YYi|X-X_i|+|Y-Y_i| 和最小。

思路

分别考虑 xx 轴与 yy 轴,我们分别把 xx 轴与 yy 轴从小到大排序,取 xx 轴与 yy 轴最中间的数,也就是我们的答案,这样可以使所有人的路程和最短。
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a[1000005],b[1000005],s,s2;
signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i]>>b[i];
	sort(a+1,a+n+1);
	sort(b+1,b+n+1);
	cout<<a[n/2+1]<<" "<<b[n/2+1];
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...