题目

题意:求最小的从某一个点到其余点的切比雪夫距离和。

将一个图中的\((x,y)\)坐标转到新坐标\((x+y,x-y)\)后,图中的曼哈顿距离就是新图中的切比雪夫距离,

证明:分类讨论,

1.\(x2>x1,y2>y1时,x2-x1+y2-y1=x2+y2-(x1+y2)\)就是新坐标的X差。

2.\(x2>x1,y2<y1时,x2-x1+y1-y2=x2-y2-(x1-y1)\)就是新坐标的Y差。

其余情况加绝对值。

然后新图中的坐标\((X,Y)\)转回旧坐标后,有\(2x=X+Y,2y=X-Y\)。

然后可以用曼哈顿距离求解。

易得:

​ \(i\)到各个节点的曼哈顿距离等于\(\sum_{k=1}^{k=n}~(x[k]-x[i])+\sum_{k=1}^{k=n}~(y[k]-y[i])\)在x,y数组递增的情况下。

先处理\(△x\)的情况,

原式=\(x[i]-x[1]+x[i]-x[2]...... + x[i]-x[i] + x[i+1]-x[i]+x[i+2]-x[i]......+x[n]-x[i]\)

​ =\(i*x[i]-Sum[i]-(n-i)*x[i]+Sum[n]-Sum[i]\)

\(△y\)同理。

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
int sumx[1010000], sumy[10010000];
int x[1001000], y[1001000];
int datax[1001000], datay[1001000]; int n, minn = 9223372036854775807;
signed main()
{
scanf("%lld", &n);
for (int i = 1, x1, y1; i <= n; i++)
scanf("%lld%lld", &x1, &y1), x[i] = datax[i] = x1 + y1, y[i] = datay[i] = x1 - y1;
sort(datax + 1, datax + 1 + n);
sort(datay + 1, datay + 1 + n);
for (int i = 1; i <= n; i++)
sumx[i] = sumx[i - 1] + datax[i], sumy[i] = sumy[i - 1] + datay[i];
for (int i = 1; i <= n; i++)
{
int ans = 0;
int idx = lower_bound(datax + 1, datax + 1 + n, x[i]) - datax;
int idy = lower_bound(datay + 1, datay + 1 + n, y[i]) - datay;
// printf("%d %d\n", idx, idy);
ans += idx * datax[idx] - sumx[idx] - (n - idx) * datax[idx] + sumx[n] - sumx[idx];
ans += idy * datay[idy] - sumy[idy] - (n - idy) * datay[idy] + sumy[n] - sumy[idy];
minn = min(minn, ans);
}
printf("%lld", minn / 2);
return 0;
}

洛谷P3964松鼠聚会的更多相关文章

  1. 洛谷P3964 [TJOI2013]松鼠聚会 [二分答案,前缀和,切比雪夫距离]

    题目传送门 松鼠聚会 题目描述 草原上住着一群小松鼠,每个小松鼠都有一个家.时间长了,大家觉得应该聚一聚.但是草原非常大,松鼠们都很头疼应该在谁家聚会才最合理. 每个小松鼠的家可以用一个点x,y表示, ...

  2. 洛谷P3964 [TJOI2013]松鼠聚会(坐标系变换)

    题面 传送门 题解 对于两个点\((x_i,y_i)\)和\(x_j,y_j\),我们定义它们之间的曼哈顿距离为 \[|x_i-x_j|+|y_i-y_j|\] 定义它们的切比雪夫距离为 \[\max ...

  3. 洛谷 P1293 班级聚会

    P1293 班级聚会 题目描述 毕业25年以后,我们的主人公开始准备同学聚会.打了无数电话后他终于搞到了所有同学的地址.他们有些人仍在本城市,但大多数人分散在其他的城市.不过,他发现一个巧合,所有地址 ...

  4. 洛谷 P2069 松鼠吃果子

    P2069 松鼠吃果子 题目描述 有N个一种松鼠喜欢吃的果子由下向上串排成一列,并标号1,2,...N.一只松鼠从最下果子开始向上跳,并且第i次跳可以一次跳过i*i*i除以5的余数+1个果子(=i*i ...

  5. 洛谷 P3258 松鼠的新家 题解

    题面 貌似这道题暴力加玄学优化就可以AC? 下面是正解: 1.树链剖分: 我们在u到v之间都放一个糖果,可以将松鼠它家u到v的糖果数都加1.每一次将a[i]到a[i+1] (a数组是访问顺序)的节点加 ...

  6. 洛谷 [P3258] 松鼠的新家

    树上差分 对于一条路径 \(u->v\) 来说,设 \(t=LCA(u,v)\) ,d[]为差分数组 ,则有 d[u]++;d[v]++;d[t]--;d[fa[t]]--; 注意:题目中所给的 ...

  7. 洛谷P4281 紧急集合 / 聚会

    LCA 题目要求找离三个点最近的点,我们先看两个点的情况,自然是找LCA,那么三个点的时候是否与LCA有关呢? 显然,离三个点最近的点一定是在这三个点联通的简单路径上. 可以简单证明一下,假设某个点离 ...

  8. 洛谷P3258 松鼠的新家

    树上差分 这应该是一道很简单的树上差分了..就是问每个点被覆盖了多少次. 要注意我们最后dfs后,要把除第一个节点以外的所有点的-1,因为有些点作为起点和终点覆盖了两次,按照题目意思是不用覆盖两次的. ...

  9. 洛谷P3258松鼠的新家

    题目传送门 恩,很明显的一个树剖题,配合树上差分其实也并不难,不过无奈蒟蒻树剖还没那么熟练,而且树上差分也做的少,所以这题愣是做了一中午......唉,果然我还是太菜了.恩,具体做法在代码中解释吧: ...

随机推荐

  1. go语言学习---使用os.Args获取简单参数(命令行解析)

    实例1: //main package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args ...

  2. 一步一步手写GIS开源项目-(1)500行代码实现基础GIS展示功能

    1.开篇 大学毕业工作已经两年了,上学那会就很想研读一份开源GIS的源码,苦于自己知识和理解有限,而市面上也没有什么由浅入深讲解开源gis原理的书籍,大多都是开源项目简介以及项目的简单应用.对于初级程 ...

  3. java第四次面试总结

    该公司没有笔试,直接就进行了面试,然后我就拿着我的简历瑟瑟发抖...... 1.因为是看简历来面试,所以面试官从我的项目下手,而我的项目都是后端的东西,虽然学过一些前端,但是项目里并没有用到任何jav ...

  4. 【转载】 C#使用string.IsNullOrWhiteSpace方法判断字符串是否为非空字符

    在C#编程过程中,很多时候需要判断传入过来的字符串是否为Null或者空字符或者空白字符,此时就可以使用到string.IsNullOrWhiteSpace方法来判断,如果字符串为null或者空字符Em ...

  5. vue实现滑块滑动校验

    为了防止机器操作自动提交,我们需要添加滑动校验. 实现代码如下:   1.子组件slider.vue <template> <div class="drag" r ...

  6. 5G能带来什么改变-从鸿蒙OS说起

    背景 从5G投票事件开始,开始关注5G.许多文章都说到5G的特点有速度快.时延低,其中,时延低是最重要的特点.然而,时延低能给社会带来什么改变呢? 2G是短信的时代,3G促成了语音视频,4G促成了短视 ...

  7. Coldfusion Sql查询分组输出

    <cfoutput query="myQry" group="date"> #date# <cfoutput> #detail# < ...

  8. SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器JSON数据交互_拦截器

    目录 第1章 高级参数的绑定 1.1 参数的分类 1.2 数组类型的参数的绑定 1.3 集合类型的参数的绑定 第2章 @RequestMapping的用法 2.1 URL路径映射 2.2 请求方法限定 ...

  9. 交易开拓者旗舰版(TB旗舰版)软件升级中如何迁移用户数据

    方法一: 1.导出工作区,桌面和系统设置.操作:文件->导入和导出 2.导出公式.操作:tb公式->公式导入导出. 3.拷贝工作室文件.目录在:user\tb用户名\Workroom 4. ...

  10. 阿里云ACA—— I

    ACA 阿里云大数据助理工程师 阿里云大学 大数据助理工程师课程笔记分享, 本资料仅供个人学习,不允许用作商业用途,侵权必删 == Alibaba Cloud Certification Associ ...