LuoguP3964 [TJOI2013]松鼠聚会【切比雪夫距离/前缀和】
前置知识:切比雪夫距离和曼哈顿距离的相互转化--自为风月马前卒
有了这个知识,我们便可以在读入松鼠的家的坐标时,先把他转化一下,然后把最后的总式化简,我们会得到一个充满后缀和以及前缀和的式子,这里有十分详细的展开式。于是我们把$x$,$y$坐标分别排序并求出他们的前缀和即可。
之后我们枚举每个点,在这个点意义下求出答案,更新答案最小值。
Code
#include<cstdio>
#include<algorithm> using namespace std;
typedef long long ll; int n;
ll tmp,ans=1e16;
ll subx[],suby[];
ll rx[],ry[];
struct node{
ll x,y;
}p[]; ll check(int u)
{
int pos=;
ll ax=,ay=;
pos=lower_bound(rx+,rx++n,p[u].x)-rx;
ax+=pos*p[u].x-subx[pos];
ax+=subx[n]-subx[pos]-p[u].x*(n-pos);
pos=lower_bound(ry+,ry++n,p[u].y)-ry;
ay+=pos*p[u].y-suby[pos];
ay+=suby[n]-suby[pos]-p[u].y*(n-pos);
return ax+ay;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
ll x=,y=;
scanf("%lld%lld",&x,&y);
rx[i]=x+y;ry[i]=x-y;
p[i].x=rx[i],p[i].y=ry[i];
}
sort(rx+,rx++n);
sort(ry+,ry++n);
for(int i=;i<=n;i++)
subx[i]=subx[i-]+rx[i],suby[i]=suby[i-]+ry[i];
for(int i=;i<=n;i++)
tmp=check(i),ans=min(ans,tmp);
printf("%lld",ans>>);
return ;
}
* 注意观察式子,在前缀和那里不要用错=w=...
#include<cstdio>
#include<algorithm> using namespace std;
typedef long long ll; int n;
ll tmp,ans=1e16;
ll subx[],suby[];
ll rx[],ry[];
struct node{
ll x,y;
}p[]; ll check(int u)
{
int pos=;
ll ax=,ay=;
pos=lower_bound(rx+,rx++n,p[u].x)-rx;
ax+=pos*p[u].x-subx[pos];
ax+=subx[n]-subx[pos-]-p[u].x*(n-pos);
pos=lower_bound(ry+,ry++n,p[u].y)-ry;
ay+=pos*p[u].y-suby[pos];
ay+=suby[n]-suby[pos-]-p[u].y*(n-pos);
return ax+ay;
} int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
ll x=,y=;
scanf("%lld%lld",&x,&y);
rx[i]=x+y;ry[i]=x-y;
p[i].x=rx[i],p[i].y=ry[i];
}
sort(rx+,rx++n);
sort(ry+,ry++n);
for(int i=;i<=n;i++)
subx[i]=subx[i-]+rx[i],suby[i]=suby[i-]+ry[i];
for(int i=;i<=n;i++)
tmp=check(i),ans=min(ans,tmp);
printf("%lld",ans>>);
return ;
}
WA
LuoguP3964 [TJOI2013]松鼠聚会【切比雪夫距离/前缀和】的更多相关文章
- BZOJ3170 [Tjoi2013]松鼠聚会 切比雪夫距离 - 曼哈顿距离 - 前缀和
BZOJ3170 题意: 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最 ...
- BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1524 Solved: 803[Submit][Status][Discuss] Descripti ...
- BZOJ.3170.[TJOI2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
题目链接 将原坐标系每个点的坐标\((x,y)\)变为\((x+y,x-y)\),则原坐标系中的曼哈顿距离等于新坐标系中的切比雪夫距离. 反过来,将原坐标系每个点的坐标\((x,y)\)变为\((\f ...
- Bzoj3170: [Tjoi2013]松鼠聚会 (切比雪夫距离)
题目链接 显然,题目要求我们求切比雪夫距离,不会的可以去看一下attack的博客. 考虑枚举所有的点 转换为曼哈顿距离后. 那么对于这个点的路程和是. \[\sum_{i=1}^n | x_i - x ...
- [TJOI2013]松鼠聚会 曼哈顿距离
[TJOI2013]松鼠聚会 luogu P3964 首先容易得到两点间距离是\(max(|x_1-x_2|, |y_1-y_2|)\)(即切比雪夫距离) 然后有个套路:原\((x,y)\)求曼哈顿距 ...
- BZOJ 3170: [Tjoi 2013]松鼠聚会 切比雪夫距离
3170: [Tjoi 2013]松鼠聚会 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- BZOJ 3170 松鼠聚会(切比雪夫距离转曼哈顿距离)
题意 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 思路 题目 ...
- luoguP3964 [TJOI2013]松鼠聚会
链接 luogu 思路 切比雪夫距离有max,不好优化. 但是我们能转化成曼哈顿距离,只需要 \((x,y)变成(\frac{x+y}{2},\frac{x-y}{2})\) 相反的曼哈顿距离转切比雪 ...
- BZOJ_3170_[Tjoi2013]松鼠聚会_切比雪夫距离+前缀和
BZOJ_3170_[Tjoi2013]松鼠聚会_切比雪夫距离+前缀和 题意:有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点, ...
随机推荐
- a#x#i#o#s封装
封装的js文件如下: /* 用于修改 axios 的一些公用配置,具体参看文档 */import axios from 'axios'import store from '@/store/index. ...
- 【转载】.NET Remoting学习笔记(一)概念
目录 .NET Remoting学习笔记(一)概念 .NET Remoting学习笔记(二)激活方式 .NET Remoting学习笔记(三)信道 背景 自接触编程以来,一直听过这个名词Remotin ...
- 使用session来存储用户的登录信息
对存在cookie端数据进行加密处理,具体代码如下: <?php session_start(); //假设用户登录成功获得了以下用户数据 $userinfo = array( 'uid' =& ...
- HDU 1028 Ignatius and the Princess III (母函数或者dp,找规律,)
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 解决:Android4.3锁屏界面Emergency calls only - China Unicom与EMERGENCY CALL语义反复
从图片中我们能够看到,这里在语义上有一定的反复,当然这是谷歌的原始设计.这个问题在博客上进行共享从表面上来看着实没有什么太大的意义,只是因为Android4.3在锁屏功能上比起老版本号做了非常大的修改 ...
- 最长公共字序列.cpp
<span style="color:#993399;">/* By yuan 2014/6/21 At nwpu.xf 1041.最长公共子序列 时限:1000ms ...
- POJ 2586 Y2K Accounting Bug(枚举大水题)
Y2K Accounting Bug Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10674 Accepted: 53 ...
- XMU C语言程序设计实践(5)
• 使用动态链表完成一个简单的商品库存信息管理系统. • 商品信息包括如下字段:商品号.商品名称.商品库存 • 函数 create:接收用户输入的商品号和商品名称的 ...
- Scrapy运行报错:ModuleNotFoundError: No module named 'douban.douban'
运行scrapy爬虫报错: from douban.douban.items import DoubanItem ModuleNotFoundError: No module named 'douba ...
- WAS:启动服务后,server一会挂起。
有个WAS集成,其中一台因为linux系统异常需要重新安装,于是服务器停了:一会现场提报ERP系统访问不了. 查看了另外一个server后台日志,有一批webcontainer进程挂起,明显服务死了. ...