BZOJ3170: [Tjoi2013]松鼠聚会
【传送门:BZOJ3170】
简要题意:
给出n个点的坐标,规定两个点的距离=max(|x1-x2|,|y1-y2|)
要求选出一个点,使得这个点到所有点的距离和最小
题解:
切比雪夫转换例题
将一个点(x,y)的坐标变为(x+y,x−y)后
原坐标系中的切比雪夫距离=新坐标系中的曼哈顿距离
求最小曼哈顿距离就行了
关于切比雪夫与曼哈顿距离转化请左转
参考代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#define Maxn 110000
#define mes(x,y) memset(x,y,sizeof(x))
using namespace std;
typedef long long LL;
struct node{int x,id;}X[Maxn],Y[Maxn];
bool cmp(node n1,node n2){return n1.x<n2.x;}
LL Lx[Maxn],Ly[Maxn],Rx[Maxn],Ry[Maxn];
int tx[Maxn],ty[Maxn];
int main()
{
int n;
scanf("%d",&n);
for(int i=;i<=n;i++)
{
int x,y;
scanf("%d%d",&x,&y);
X[i].x=x+y;Y[i].x=x-y;
X[i].id=Y[i].id=i;
}
sort(X+,X+n+,cmp);sort(Y+,Y+n+,cmp);
for(int i=;i<=n;i++) tx[X[i].id]=i,ty[Y[i].id]=i;
for(int i=;i<=n;i++)
{
Lx[i]=Lx[i-]+LL(i-)*(X[i].x-X[i-].x);
Ly[i]=Ly[i-]+LL(i-)*(Y[i].x-Y[i-].x);
}
for(int i=n-;i>=;i--)
{
Rx[i]=Rx[i+]+LL(n-i)*(X[i+].x-X[i].x);
Ry[i]=Ry[i+]+LL(n-i)*(Y[i+].x-Y[i].x);
}
LL ans=1LL<<;
for(int i=;i<=n;i++) ans=min(ans,Lx[tx[i]]+Ly[ty[i]]+Rx[tx[i]]+Ry[ty[i]]);
printf("%lld\n",ans/);
return ;
}
BZOJ3170: [Tjoi2013]松鼠聚会的更多相关文章
- BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1524 Solved: 803[Submit][Status][Discuss] Descripti ...
- BZOJ3170 [Tjoi2013]松鼠聚会 切比雪夫距离 - 曼哈顿距离 - 前缀和
BZOJ3170 题意: 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最 ...
- BZOJ3170: [Tjoi2013]松鼠聚会 - 暴力
描述 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 题解 简直 ...
- Bzoj3170: [Tjoi2013]松鼠聚会 (切比雪夫距离)
题目链接 显然,题目要求我们求切比雪夫距离,不会的可以去看一下attack的博客. 考虑枚举所有的点 转换为曼哈顿距离后. 那么对于这个点的路程和是. \[\sum_{i=1}^n | x_i - x ...
- 【bzoj3170】[Tjoi2013]松鼠聚会
3170: [Tjoi2013]松鼠聚会 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1670 Solved: 885[Submit][Statu ...
- BZOJ_3170_[Tjoi2013]松鼠聚会_切比雪夫距离+前缀和
BZOJ_3170_[Tjoi2013]松鼠聚会_切比雪夫距离+前缀和 题意:有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点, ...
- [TJOI2013]松鼠聚会 曼哈顿距离
[TJOI2013]松鼠聚会 luogu P3964 首先容易得到两点间距离是\(max(|x_1-x_2|, |y_1-y_2|)\)(即切比雪夫距离) 然后有个套路:原\((x,y)\)求曼哈顿距 ...
- [TJOI2013]松鼠聚会(枚举)
[TJOI2013]松鼠聚会 题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x, ...
- 洛谷P3964 [TJOI2013]松鼠聚会 [二分答案,前缀和,切比雪夫距离]
题目传送门 松鼠聚会 题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示, ...
随机推荐
- Orcal的JDBC数据连接方式
package cn.com.db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepar ...
- js判读周末以及节假日
两个链接,搞定! http://bbs.csdn.net/topics/10417668 http://www.jb51.net/article/131660.htm
- BZOJ 1441 裴蜀定理
思路: 若a,b是整数,且(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立. 它的一个重要推论是:a,b互质的充要条件是存在整数x ...
- Codeforces Round #448
Pizza Serparation #include<stdio.h> #include<string.h> #include<stdlib.h> #include ...
- js---通过arguments来获取指定参数
通过访问arguments对象的length属性可以获取有多少个参数传递给了函数. 如:每次被调用的时候,输出传入其中的参数个数 function doAdd(){ alert(arguments.l ...
- Postfix Self Expression
Postfix Self Expression A postfix self expression consists of an expression or the name of a type, i ...
- The features of Swift
The features of Swift are designed to work together to create a language that is powerful, yet fun t ...
- Select, Poll,Epoll
Date: 2019-06-19 Author: Sun 1. Select select最早于1983年出现在4.2BSD中,它通过一个select()系统调用来监视多个文件描述符的数组,当se ...
- 【udacity】机器学习
Evernote Export 2.人工智能简介 机器学习源自于人工智能,在此方向上,该领域有分为不同学派,机器学习主要关注的是制造能够自主动作的机器 3.人工智能难题 1.所有智能体都只有很少的计算 ...
- 喵哈哈村的魔法考试 Round #3 (Div.2)
菜的抠脚 A 题解:判断能否构成一个三角形. #include "iostream" #include "algorithm" #include "c ...