AtCoder Beginner Contest 178 E - Dist Max 题解(推公式)
题目链接
题目大意
给你n个点(n<=2e5)要你求所有点中两个点最短的曼哈顿距离
曼哈顿距离定义为d(i,j)=|x1-x2|+|y1-y2|.
题目思路
想了很久也没有什么思路,其实就是一个简单的推公式
x1-x2与y1-y2如果同号,那么d(i,j)=abs(x1-x2+y1-y2)=abs(x1+y1-(x2+y2))
x1-x2与y1-y2如果异号,那么d(i,j)=abs(x1-x2-y1+y2)=abs(x1 - y1-(x2-y2))
那么答案就是取max(max(|xi+yi|)-min(|xj+yj|),max(|xi-yi|)-min(|xj-yj|))
代码
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#define fi first
#define se second
#define debug printf(" I am here\n");
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1000+5,inf=0x3f3f3f3f;
const double eps=1e-10;
int n;
signed main(){
scanf("%d",&n);
int ma1=-inf,mi1=inf,ma2=-inf,mi2=inf;
for(int i=1,x,y;i<=n;i++){
scanf("%d%d",&x,&y);
ma1=max(ma1,x-y);
mi1=min(mi1,x-y);
ma2=max(ma2,x+y);
mi2=min(mi2,x+y);
}
printf("%d\n",max(ma1-mi1,ma2-mi2));
return 0;
}
AtCoder Beginner Contest 178 E - Dist Max 题解(推公式)的更多相关文章
- AtCoder Beginner Contest 178
比赛链接:https://atcoder.jp/contests/abc178/tasks A - not 题意 给出一个整数 $0 \le x \le 1$,如果 $x$ 是 $0$ 就输出 $1$ ...
- [题解] Atcoder Beginner Contest ABC 270 G Ex 题解
点我看题 G - Sequence in mod P 稍微观察一下就会发现,进行x次操作后的结果是\(A^xS+(1+\cdots +A^{x-1})B\).如果没有右边那一坨关于B的东西,那我们要求 ...
- 【AtCoder Beginner Contest 181】A~F题解
越学越菜系列 于2020.11.2,我绿了(错乱) A - Heavy Rotation 签到题,奇数Black,偶数White. code: #include<bits/stdc++.h> ...
- AtCoder Beginner Contest 154 题解
人生第一场 AtCoder,纪念一下 话说年后的 AtCoder 比赛怎么这么少啊(大雾 AtCoder Beginner Contest 154 题解 A - Remaining Balls We ...
- AtCoder Beginner Contest 177 题解
AtCoder Beginner Contest 177 题解 目录 AtCoder Beginner Contest 177 题解 A - Don't be late B - Substring C ...
- KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解
KYOCERA Programming Contest 2021(AtCoder Beginner Contest 200) 题解 哦淦我已经菜到被ABC吊打了. A - Century 首先把当前年 ...
- AtCoder Beginner Contest 184 题解
AtCoder Beginner Contest 184 题解 目录 AtCoder Beginner Contest 184 题解 A - Determinant B - Quizzes C - S ...
- AtCoder Beginner Contest 172 题解
AtCoder Beginner Contest 172 题解 目录 AtCoder Beginner Contest 172 题解 A - Calc B - Minor Change C - Tsu ...
- AtCoder Beginner Contest 148 题解
目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...
随机推荐
- Mybatis---07Mybatis配置文件浅析(五)
1.environments:MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中, 现实情况下有多种理由需要这么做.例如,开发.测试和生产环境需要有不同的配置: ...
- Java数据结构-00导论
一个程序是怎样组成的呢?数据结构+算法=程序 一.什么是数据结构: 简单定义就是研究数据的存储方式:选择适当的数据结构可以提高计算机程序的运行效率(时间复杂度O)和存储效率(空间复杂度S). 二.数据 ...
- uniapp微信小程序canvas绘图插入网络图片不显示
网络图片缓存 在uni中wx可以用uni代替 无区别: 先把要插入的网络图片缓存(getImageInfo); let context = uni.createCanvasContext('first ...
- STM32CubeIDE下载安装-GPIO基本配置操作-Debug调试(基于CMSIS DAP Debug)
1.在ST官网下载STM32CubeIDE而不是STM32CubeMX,并且STM32CubeIDE是免费的.(STM32CubeIDE不支持中文路径,不然编译会出错) 2.如果你用的是keil开发环 ...
- python数据分析03Python的数据结构、函数和文件
我们会从Python最基础的数据结构开始:元组.列表.字典和集合.然后会讨论创建你自己的.可重复使用的Python函数.最后,会学习Python的文件对象,以及如何与本地硬盘交互. 3.1 数据结构和 ...
- Aps.Net Core3.1 WebApi发送阿里云短信验证码
1.前言 转眼又要过了一年了 好久没写博客了,人不学就要落后,今天有时间把以前弄的发送阿里云短信验证码登录记录一下. 2.准备条件 1)去阿里云官网注册一个账号.有账号直接登录就行,以前新人好像有免费 ...
- TPE-ThreadPoolExecutor
TPE: java.util.concurrent.ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximum ...
- 经典c程序100例==81--90
[程序81] 题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,及809*??后的结果. 1.程序分析: 2.程 ...
- [MIT6.006] 8. Hashing with Chaining 散列表
一.字典 在之前课里,如果我们要实现插入,删除和查找,使用树结构,最好的时间复杂度是AVL下的Ο(log2n),使用线性结构,最好的复杂度为基数排序Ο(n).但如果使用字典数据类型去做,时间复杂度可为 ...
- 深度学习中的Dropout
dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃.注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络. ...