BZOJ 3210 花神的浇花集会 计算几何- -?
题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小
与3170不同的是这次选择的点无需是n个点中的一个
首先将每一个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半就是原点之间的切比雪夫距离
因为曼哈顿距离中横纵坐标不互相干扰,因此我们能够将横纵坐标分开处理
每一维要选一个坐标 到其它全部坐标的绝对值之和相等 非常easy想到中位数
可是直接选择中位数得到的点可能横纵坐标奇偶性不同 这样代回原点中发现不是整点
因此假设得到的点横纵坐标奇偶性同样直接输出距离 不同的话选择周围的四个点进行判定 选择最小的距离输出就可以
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define M 100100
using namespace std;
int n,X[M],Y[M];
long long Check(int x,int y)
{
int i;
long long re=0;
for(i=1;i<=n;i++)
re+=abs(x-X[i])+abs(y-Y[i]);
return re;
}
int main()
{
int i,x,y;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);
X[i]=x+y;Y[i]=x-y;
}
sort(X+1,X+n+1);
sort(Y+1,Y+n+1);
x=X[n+1>>1];
y=Y[n+1>>1];
if( ~(x^y)&1 )
cout<<Check(x,y)/2<<endl;
else
cout<<min(min(Check(x+1,y),Check(x-1,y)),min(Check(x,y+1),Check(x,y-1)))/2<<endl;
return 0; }
BZOJ 3210 花神的浇花集会 计算几何- -?的更多相关文章
- BZOJ 3210: 花神的浇花集会
3210: 花神的浇花集会 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 577 Solved: 299[Submit][Status][Discus ...
- BZOJ 3210: 花神的浇花集会 (切比雪夫距离)
GXZlegend 切比雪夫和曼哈顿距离的互相转化看这里 传送门 CODE #include <bits/stdc++.h> using namespace std; #define LL ...
- 【BZOJ】【3210】花神的浇花集会
曼哈顿距离与切比雪夫距离 QAQ蒟蒻并不知道切比雪夫距离是什么……并不会做这道题…… 去膜拜了PoPoQQQ大爷的题解: 题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与31 ...
- BZOJ3210: 花神的浇花集会
3210: 花神的浇花集会 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 238 Solved: 119[Submit][Status] Descri ...
- BZOJ_3210_花神的浇花集会_切比雪夫距离
BZOJ_3210_花神的浇花集会_切比雪夫距离 Description 在花老师的指导下,每周4都有一个集会活动,俗称“浇水”活动. 具体浇水活动详情请见BZOJ3153 但这不是重点 花神出了好多 ...
- 【bzoj3210】花神的浇花集会 旋转坐标系
题目描述 在花老师的指导下,每周4都有一个集会活动,俗称“浇水”活动. 具体浇水活动详情请见BZOJ3153 但这不是重点 花神出了好多题,每道题都有两个参考系数:代码难度和算法难度 花神为了准备浇花 ...
- BZOJ3210: 花神的浇花集会(坐标系变换)
题面 传送门 题解 坐标系变换把切比雪夫距离转化为曼哈顿距离 那么对于所有的\(x\)坐标中,肯定是中位数最优了,\(y\)坐标同理 然而有可能这个新的点不合法,也就是说不存在\((x+y,x-y)\ ...
- bzoj3210 花神的浇花集会 坐标
题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与3170不同的是这次选择的点无需是n个点中的一个 首先将每个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半 ...
- 【bzoj3210】花神的浇花集会
将(x,y)转化成(x+y,x-y)可以将切比雪夫距离转化成曼哈顿距离(自己推一推) A.B的切比雪夫距离就是A‘.B‘曼哈顿距离的一半. 那么可以将x.y分离处理,排序中位数即可. 注意如果最后选的 ...
随机推荐
- Linux 命令行光标快速选中移动快捷键
Ctrl+Alt+T 打开终端一些常用的终端快捷键:Ctrl+L 清空屏幕(功能相当于命令clear)Ctrl+U 剪切文本直到行的起始(可以用于清空行)Ctrl+K 剪切文本直到行的末尾Ctrl+Y ...
- 安卓开发--ListView
package com.zx.listview01; import java.util.ArrayList; import java.util.HashMap; import java.util.Li ...
- c#中debug和release版本的区别
1 debug版本称为调试版本,包含各种调试信息,以为开发人员提供强大的应用程序调试能力,其没有做任何优化,速度慢. 2 release版本称为发布版本,不保存调试信息,但是做了各种的优化,体积小,运 ...
- Orientdb基本操作
https://blog.csdn.net/clj198606061111/article/details/82314459
- 工作日志:dispatch_once、网络缓存、分享问题
问题描述一: 每一个接口对应的model的数据在进入对应的模块(视图)时,执行一次本地缓存加载: 执行缓存加载的实现在基类实现. 解决方案: 将dispatch_once_t设置为成员变量: 问题扩展 ...
- 重复执行shell脚本。
while ((1)); do gclient runhooks; sleep 2; donewhile ((1)); do ifconfig; sleep 1; done
- XRDP与VNC的关系(转载)
XRDP与VNC的关系 如果仅仅安装XRDP协议.是不能在windows上使用远程桌面连接到Ubuntu. 还须要安装VNCServer才行. 所以,XRDP启动之后.系统会自己主动启动一个VNC会话 ...
- python(1)处理图像
一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此, ...
- uwsgi erro
Installing collected packages: uwsgi Running setup.py install for uwsgi: started Running setup.py in ...
- [NOIP2009] 靶形数独(搜索)
P1074 靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士 ...