BZOJ3210: 花神的浇花集会
3210: 花神的浇花集会
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 238 Solved: 119
[Submit][Status]
Description
在花老师的指导下,每周4都有一个集会活动,俗称“浇水”活动。
具体浇水活动详情请见BZOJ3153
但这不是重点
花神出了好多题,每道题都有两个参考系数:代码难度和算法难度
花神为了准备浇花集会的题,必须找一道尽量适合所有人的题
现在花神知道每个人的代码能力x和算法能力y,一道题(代码难度X算法难度Y)对这个人的不适合度为 Max ( abs ( X – x ) , abs ( Y – y ) )
也就是说无论太难还是太简单都会导致题目不适合做(如果全按花神本人能力设题,绝对的全场爆0的节奏,太简单,则体现不出花神的实力)
当然不是每次都如花神所愿,不一定有一道题适合所有人,所以要使所有人的不合适度总和尽可能低
花神出了100001*100001道题,每道题的代码难度和算法难度都为0,1,2,3,……,100000
Input
第一行一个正整数N,表示花神有N个学生,花神要为这N个学生选一道题
接下来N行,每行两个空格隔开的整数x[i],y[i],表示这个学生的代码能力和算法能力
Output
一个整数,表示最小的不合适度总和
Sample Input
1 2
2 1
3 3
Sample Output
HINT
Source
类似于松鼠聚会,但本题不是单纯的取中位数就可以,因为这样如果取出的x‘和y’奇偶性不同是找不出满足条件的x,y的,所以我们可以在该解附近多找两个点,使奇偶性相同,来更新ans
代码:
- #include<cstdio>
- #include<cstdlib>
- #include<cmath>
- #include<cstring>
- #include<algorithm>
- #include<iostream>
- #include<vector>
- #include<map>
- #include<set>
- #include<queue>
- #include<string>
- #define inf 1000000000000000ll
- #define maxn 100000+5
- #define maxm 500+100
- #define eps 1e-10
- #define ll long long
- #define pa pair<int,int>
- #define for0(i,n) for(int i=0;i<=(n);i++)
- #define for1(i,n) for(int i=1;i<=(n);i++)
- #define for2(i,x,y) for(int i=(x);i<=(y);i++)
- #define for3(i,x,y) for(int i=(x);i>=(y);i--)
- #define mod 1000000007
- using namespace std;
- inline int read()
- {
- int x=,f=;char ch=getchar();
- while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
- while(ch>=''&&ch<=''){x=*x+ch-'';ch=getchar();}
- return x*f;
- }
- struct rec{int x,y;ll z;}a[maxn];
- struct recc{ll x;int y;}b[],c[];
- const int d[]={,,,,-,-,-};
- int n;
- inline bool cmp1(rec a,rec b){return a.x<b.x;}
- inline bool cmp2(rec a,rec b){return a.y<b.y;}
- int main()
- {
- freopen("input.txt","r",stdin);
- freopen("output.txt","w",stdout);
- n=read();
- for1(i,n)
- {
- int x=read(),y=read();
- a[i].x=x+y;a[i].y=x-y;
- }
- sort(a+,a+n+,cmp1);
- for0(j,)
- {
- b[j].y=a[(n+)>>].x+d[j];
- for1(i,n)b[j].x+=abs(a[i].x-b[j].y);
- }
- sort(a+,a+n+,cmp2);
- for0(j,)
- {
- c[j].y=a[(n+)>>].y+d[j];
- for1(i,n)c[j].x+=abs(a[i].y-c[j].y);
- }
- ll ans=inf;
- for0(i,)
- for0(j,)
- if(((b[i].y&)==(c[j].y&)))ans=min(ans,b[i].x+c[j].x);
- printf("%lld\n",ans>>);
- return ;
- }
BZOJ3210: 花神的浇花集会的更多相关文章
- BZOJ3210: 花神的浇花集会(坐标系变换)
题面 传送门 题解 坐标系变换把切比雪夫距离转化为曼哈顿距离 那么对于所有的\(x\)坐标中,肯定是中位数最优了,\(y\)坐标同理 然而有可能这个新的点不合法,也就是说不存在\((x+y,x-y)\ ...
- bzoj3210 花神的浇花集会 坐标
题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与3170不同的是这次选择的点无需是n个点中的一个 首先将每个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一半 ...
- 【BZOJ】【3210】花神的浇花集会
曼哈顿距离与切比雪夫距离 QAQ蒟蒻并不知道切比雪夫距离是什么……并不会做这道题…… 去膜拜了PoPoQQQ大爷的题解: 题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与31 ...
- BZOJ_3210_花神的浇花集会_切比雪夫距离
BZOJ_3210_花神的浇花集会_切比雪夫距离 Description 在花老师的指导下,每周4都有一个集会活动,俗称“浇水”活动. 具体浇水活动详情请见BZOJ3153 但这不是重点 花神出了好多 ...
- BZOJ 3210: 花神的浇花集会
3210: 花神的浇花集会 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 577 Solved: 299[Submit][Status][Discus ...
- 【bzoj3210】花神的浇花集会 旋转坐标系
题目描述 在花老师的指导下,每周4都有一个集会活动,俗称“浇水”活动. 具体浇水活动详情请见BZOJ3153 但这不是重点 花神出了好多题,每道题都有两个参考系数:代码难度和算法难度 花神为了准备浇花 ...
- 【bzoj3210】花神的浇花集会
将(x,y)转化成(x+y,x-y)可以将切比雪夫距离转化成曼哈顿距离(自己推一推) A.B的切比雪夫距离就是A‘.B‘曼哈顿距离的一半. 那么可以将x.y分离处理,排序中位数即可. 注意如果最后选的 ...
- BZOJ 3210 花神的浇花集会 计算几何- -?
题目大意:给定平面上的n个点,求一个点到这n个点的切比雪夫距离之和最小 与3170不同的是这次选择的点无需是n个点中的一个 首先将每一个点(x,y)变为(x+y,x-y) 这样新点之间的曼哈顿距离的一 ...
- BZOJ 3210: 花神的浇花集会 (切比雪夫距离)
GXZlegend 切比雪夫和曼哈顿距离的互相转化看这里 传送门 CODE #include <bits/stdc++.h> using namespace std; #define LL ...
随机推荐
- 利用Merge生成或更新新记录
-- ============================================= -- Author: <华仔> -- Create date: <2016,6,7& ...
- bootstrap paginator 与 bootstrap3兼容
bootstrap paginator可支持bootstrap2 和bootstrap3. 默认的下载包中支持2,需要手动修改才能支持bootstrap3.具体方法:找到bootstrap-pagin ...
- C++学习笔记3—对话框
1.模态对话框 CTipDlg tipDlg; INT_PTR nResponse = tipDlg.DoModal(); if(nResponse == IDCANCEL) { return; } ...
- html-----015---HTML ASCII 参考手册
HTML 和 XHTML 用标准的 7 比特 ASCII 代码在网络上传输数据. 7 比特 ASCII 代码可提供 128 个不同的字符值. 7 比特 可显示的 ASCII 代码 <html&g ...
- mysql笔记之集群
1.主从配置 #主从都要加入以下配置如下 [mysqld] log-bin=mysql-bin #主从要不一样 server-id=222 #在主上建立一个用户给从的用 GRANT REPLICATI ...
- Ladder免费试用版
Ladder这款vpn软件最近在play中国区排名非常高,节节高升,可见大家还真需要这东西,软件做的不错,大家可以在试用版中升级到正式版. 下载地址
- 动态加载js、css 代码
一.原生js: /** * 加载js和css文件 * @param jsonData.path 前缀路径 * @param jsonData.url 需要加载的js路径或css路径 * @param ...
- sass中常用mixin
//设置字体大小 @mixin font($s:14px,$h:1.5,$f:microsoft yahei){ font:$s/#{$h} $f; } //参数(方向,大小,颜色),默认:向下,10 ...
- 让你的 Node.js 应用跑得更快的 10 个技巧
Node.js 受益于它的事件驱动和异步的特征,已经很快了.但是,在现代网络中只是快是不行的.如果你打算用 Node.js 开发你的下一个Web 应用的话,那么你就应该无所不用其极,让你的应用更快,异 ...
- oracle 查看表的定义
select t.table_name 表名, c.comments 字段名称, t.column_name 字段编码, t.data_type || '(' || to_char(t.data_le ...