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表示, ...
随机推荐
- guice基本使用,常用的绑定方式(四)
guice在moudle中提供了良好的绑定方法. 它提供了普通的绑定,自定义注解绑定,按名称绑定等. 下面直接看代码: package com.ming.user.test; import com.g ...
- 对比JavaScript的入口函数和jQuery的入口函数
JavaScript的入口函数要等到页面中所有的资源(包括图片.文件)加载完成才开始执行. jQuery的入口函数只会等待文档数加载完成就开始执行,并不会等待图片.文件的加载.
- Mybatis xml约束文件的使用
一:准备.DTD约束文件 核心配置文件约束文件:mybatis-config.dtd <?xml version="1.0" encoding="UTF- ...
- SQL Server将数据导出到SQL脚本文件
http://www.studyofnet.com/news/list-8883.2-1-4.html 一.SQL Server 2008将数据导出到SQL脚本文件 1.打开SQL Server200 ...
- sql server<> != 从数据类型varchar转换为numeric 时出错
sql server 数据类型转换出错 字段percentcomplete 是 varchar 类型, 都是存的数字 用 where cast(percentcomplete as numeric(1 ...
- 【SQL】分析函数功能-排序
1:排名,不考虑并列问题 row_number() 2:排名,有并列,并列后的排名不连续 rank() 3:排名,有并列,并列后的排名连续 dense_rank() 测试: SQL> creat ...
- CSS读书笔记(1)---选择器和两列布局
(1)CSS选择器优先权选择. 优先权从大到小的选择如下: 标有!important关键字声明的属性 HTML中的CSS样式属性 <div style="color:red" ...
- swift pragma mark
众所周知,大家在OC中对代码进行逻辑组织 用的是#pragma mark - ,生成分隔线 用#pragma mark 函数说明,来生成一个函数的说明X 但在swift中,这个语法就不支持了,毕竟它是 ...
- nginx安装http2.0协议
1.HTTP2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...
- anaconda下jieba和wordcloud安装
1.在anaconda交互环境下安装jieba,输入命令: pip install jieba 2.在https://pypi.python.org/pypi/wordcloud下载wordclou ...