3170: [Tjoi2013]松鼠聚会
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 1804 Solved: 968
[Submit][Status][Discuss]
Description
有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1。现在N个松鼠要走到一个松鼠家去,求走过的最短距离。
Input
第一行给出数字N,表示有多少只小松鼠。0<=N<=10^5
下面N行,每行给出x,y表示其家的坐标。
-10^9<=x,y<=10^9
Output
表示为了聚会走的路程和最小为多少。
Sample Input
-4 -1
-1 -2
2 -4
0 2
0 3
5 -2
Sample Output
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- using namespace std;
- #define LL long long
- const LL INF=0x7f7f7f7f7f7f7f7f;
- const int MAXN=;
- struct Point
- {
- LL x,y,ans;
- }P[MAXN];
- LL n,ans=INF;
- LL f[MAXN];
- bool cmpx(Point A,Point B){return A.x<B.x;}
- bool cmpy(Point A,Point B){return A.y<B.y;}
- int main()
- {
- scanf("%d",&n);
- for(int i=;i<=n;i++)
- {
- int x,y;
- scanf("%d%d",&x,&y);
- P[i].x=x+y;
- P[i].y=x-y;
- }
- sort(P+,P+n+,cmpx);
- for(int i=;i<=n;i++) f[i]=f[i-]+P[i].x;
- for(int i=;i<=n;i++)
- P[i].ans+=i*P[i].x-f[i]+f[n]-f[i]-(n-i)*P[i].x;
- sort(P+,P+n+,cmpy);
- for(int i=;i<=n;i++) f[i]=f[i-]+P[i].y;
- for(int i=;i<=n;i++)
- {
- P[i].ans+=i*P[i].y-f[i]+f[n]-f[i]-(n-i)*P[i].y;
- if(P[i].ans<ans) ans=P[i].ans;
- }
- cout<<(ans>>);
- return ;
- }
3170: [Tjoi2013]松鼠聚会的更多相关文章
- BZOJ.3170.[TJOI2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
题目链接 将原坐标系每个点的坐标\((x,y)\)变为\((x+y,x-y)\),则原坐标系中的曼哈顿距离等于新坐标系中的切比雪夫距离. 反过来,将原坐标系每个点的坐标\((x,y)\)变为\((\f ...
- BZOJ 3170 [Tjoi2013]松鼠聚会
题解:切比雪夫距离转化为曼哈顿距离 枚举源点,横纵坐标互不影响,分开考虑,前缀和优化 横纵分开考虑是一种解题思路 #include<iostream> #include<cstdio ...
- 【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表示, ...
- [TJOI2013]松鼠聚会 BZOJ 3170
题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示,两个点的距离定义为点( ...
- BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1524 Solved: 803[Submit][Status][Discuss] Descripti ...
随机推荐
- Linux之数据库
crm 1.一定得会用linux发行版 centos 熟悉各种linux命令 2.你的确保linux服务器可以上网 , 一定得有ip地址,且确保dns解析正常 /etc/resolv.conf 3.上 ...
- Windows 新增 Sublime Text3 右键快捷方式
Win10 创建 Sublime Text 3 右键快捷方式 Windows + R 输入 regedit 打开注册表编辑器: 依次找到 计算机\HKEY_CLASSES_ROOT\*\shell: ...
- LeetCode 046 Permutations 全排列
Given a collection of distinct numbers, return all possible permutations.For example,[1,2,3] have th ...
- Docker 镜像制作 CentOS+JDK+Tomcat
[root@localhost createImages]# ls apache-tomcat-.tar.gz server-jre-8u121-linux-x64.tar.gz [root@loca ...
- (转)Linux命令详解-file
Linux命令详解-file 原文:https://www.cnblogs.com/Dodge/p/4278306.html file命令用来识别文件类型,也可用来辨别一些文件的编码格式.它是通过查看 ...
- pat1078. Hashing (25)
1078. Hashing (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The task of t ...
- ORA-29875 出现问题解决办法
出现问题:Underlying DBMS error [ORA-29875: 无法执行 ODCIINDEXINSERT 例行程序ORA-20085: Insert Spatial Reference ...
- 自定义列表dl
语法格式 <dl> <dt>名词1</dt> <dd>名词1解释1</dd> <dd>名词1解释2</dd> ... ...
- 2013 QConf上海软件开发大会总结
带着工作中的一些疑问,我参加了在上海举办的QConf 全球软件开发大会.会议以主题的形式按分会场召开,我主要选择知名网站案例分析.大数据处理技术.高效能团队建设和金融系统架构与设计四个主题内容.三天会 ...
- jQuery_2_常规选择器-高级选择器
高级选择器 层次选择器 1. 后代选择器 $("#d1 p") 获取追溯到的多个DOM对象 (无论儿子还是孙子都是后代) 2. 子选择器 $("# ...