luoguP3964 [TJOI2013]松鼠聚会
链接
luogu
思路
切比雪夫距离有max,不好优化。
但是我们能转化成曼哈顿距离,只需要
\((x,y)变成(\frac{x+y}{2},\frac{x-y}{2})\)
相反的曼哈顿距离转切比雪夫距离
\((x,y)=>(x+y,x-y)\)
详情见attack
剩下的就是sort直接做了
代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+7;
int n;
struct node {int val,id;bool operator < (const node &b) const {return val<b.val;}
}a[N],b[N];
ll ans[N],sum[N][2],mi;
int main() {scanf("%d",&n);for(int i=1,tmpa,tmpb;i<=n;++i) {scanf("%d%d",&tmpa,&tmpb);a[i].val=(tmpa+tmpb),a[i].id=i;b[i].val=(tmpa-tmpb),b[i].id=i;}sort(a+1,a+1+n);sort(b+1,b+1+n);for(int i=1;i<=n;++i) sum[i][0]=sum[i-1][0]+a[i].val;for(int i=n;i>=1;--i) sum[i][1]=sum[i+1][1]+a[i].val;for(int i=1;i<=n;++i) {ans[a[i].id]+=1LL*a[i].val*(i-1)-sum[i-1][0];ans[a[i].id]+=sum[i+1][1]-1LL*(n-i)*a[i].val;}for(int i=1;i<=n;++i) sum[i][0]=sum[i-1][0]+b[i].val;for(int i=n;i>=1;--i) sum[i][1]=sum[i+1][1]+b[i].val;for(int i=1;i<=n;++i) {ans[b[i].id]+=1LL*b[i].val*(i-1)-sum[i-1][0];ans[b[i].id]+=sum[i+1][1]-1LL*(n-i)*b[i].val;}mi=0x3f3f3f3f3f3f3f3fLL;for(int i=1;i<=n;++i) mi=min(mi,ans[i]);cout<<mi/2<<"\n";return 0;
}
转载于:https://www.cnblogs.com/dsrdsr/p/10985038.html
luoguP3964 [TJOI2013]松鼠聚会相关推荐
- P3964 [TJOI2013]松鼠聚会【切比雪夫距离】
P3964 [TJOI2013]松鼠聚会 题意:给出nnn个点(xi,yi)(x_i,y_i)(xi,yi),找到某个点,使得所有点到该点的切比雪夫距离和最小. 一. A(x1,y1),B(x2, ...
- 算法笔记——曼哈顿距离,切比雪夫距离,曼哈顿距离之和 P3964 [TJOI2013]松鼠聚会
P3964 [TJOI2013]松鼠聚会 题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以 ...
- BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)
Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1524 Solved: 803 [Submit][Status][Discuss] Descrip ...
- [TJOI2013]松鼠聚会
题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示,两个点的距离定义为点( ...
- 洛谷3964 [TJOI2013]松鼠聚会
题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示,两个点的距离定义为点( ...
- BZOJ3170: [Tjoi2013]松鼠聚会 - 暴力
描述 有N个小松鼠,它们的家用一个点x,y表示,两个点的距离定义为:点(x,y)和它周围的8个点即上下左右四个点和对角的四个点,距离为1.现在N个松鼠要走到一个松鼠家去,求走过的最短距离. 题解 简直 ...
- 洛谷 P3964 [TJOI2013]松鼠聚会(切比雪夫距离和曼哈顿距离转换)
这个距离的定义就是切比雪夫距离的定义.切比雪夫距离的计算式子是:d = max(|x1 - x2|,|y1 - y2|) 在切比雪夫距离的定义下,一个点和周围相邻的8个点的距离相等(都为1). 如果将 ...
- [TJOI2013]松鼠聚会【切比雪夫距离转换曼哈顿距离】
题目链接 首先,愚人节那天,暴力斩获30分,(暴力法真好用! 然后,讲一下解题的思路吧,主要是怎样转换切比雪夫距离这里要有神奇的方法. 首先,我们先列举一下两点间切比雪夫距离的求解公式: 指的是i.j ...
- P3964 [TJOI2013]松鼠聚会
HyperlinkHyperlinkHyperlink https://www.luogu.org/problemnew/show/P3964 DescriptionDescriptionDescri ...
最新文章
- android app 内置图标icon 的标准,(目前是2019年)
- HDU7059-Counting Stars 线段树 (区间加最低位置,区间减最高位)
- 软件疑难杂症解决办法汇总
- Problem 59 GCC密切相关的一些环境变量?
- android 取消和svn关联_Android Studio如何取消与SVN的关联
- Centos mysql的安装和配置
- Meteor的临时的存储:Session
- Java Learning Path(四) 方法篇
- 使用javassist动态注入代码
- Marketing Cloud的notification的OData实现
- 飞鸽传书 宣传单和电话说辞
- vue监听字符串长度_Vue 的 computed 和 watch 的区别
- 程序员生存定律--如何尽快变的稍微专业一点
- 视频监控市场发展潜力大 六个阻碍待突破
- paip.提升安全性---WEB程序安全检测与防范
- 用python解决搬砖问题_如何像要饭一般”用“python (一)(非编程类工作/科研搬砖工)...
- MQTT测试工具MQTT.FX
- 博科交换机建立Zone基本配置
- flask入门和进阶五(关注功能的实现Followers)
- 租用国外服务器推荐哪一个?