[bzoj3210] 花神的浇花集会
2016-03-21 14:12
375 查看
根据网上题解可得(QAQ。。把坐标变成(x-y,x+y)后,原本的切比雪夫距离就是现在的曼哈顿距离的一半。。
似乎金组题里也有道一模一样的。
分别求出横纵坐标的中位数。。但如果所取的点的x、y奇偶性不同。。那在原图里是没有对应点的。
所以可能要再试一下旁边的四个点
View Code
似乎金组题里也有道一模一样的。
分别求出横纵坐标的中位数。。但如果所取的点的x、y奇偶性不同。。那在原图里是没有对应点的。
所以可能要再试一下旁边的四个点
#include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<cstdlib> #define ll long long using namespace std; const int maxn=100233; int x[maxn],y[maxn]; int i,j,k,n,m; ll ans; int ra;char rx; inline int read(){ rx=getchar(),ra=0; while(rx<'0'||rx>'9')rx=getchar(); while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra; } inline ll get(int a,int b){ ll sm=0; for(int i=1;i<=n;i++) sm+=abs(a-x[i])+abs(b-y[i]); return sm; } int main(){ n=read(); for(i=1;i<=n;i++)j=read(),k=read(),x[i]=j+k,y[i]=j-k; sort(x+1,x+1+n),sort(y+1,y+1+n); int mx=x[(1+n)>>1],my=y[(1+n)>>1]; if((mx^my)&1) ans=min(get(mx-1,my),min(get(mx+1,my),min(get(mx,my-1),get(mx,my+1)))); else ans=get(mx,my); printf("%lld\n",ans>>1); return 0; }
View Code
相关文章推荐
- apache + tomcat + mod_jk解决session会话共享的问题
- Hibernate 双向 多对一
- composer 安装,并安装yii2
- [better practice系列]Android中自定义全局变量、常量并采用高效的维护管理(一)
- oracle Plsql 执行update或者delete时卡死问题解决办法
- JDK源码研究之-----------HashMap AND HashCode
- 基础练习 杨辉三角形
- c#代码分析
- 闭关日记 Day08
- eclipse右键没有maven菜单
- empty()和isset()的区别
- 搭建IM服务 so easy
- 获取vendorid
- 数据结构4-堆栈
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 抽签(代码填空)
- java查找算法(二)--二分递归查找
- idea在线激活
- 远程桌面连接命令mstsc
- 解决ssms2012连接远程数据库报错崩溃的问题
- 电商干货!BANNER图设计之商品图该怎么玩(下集)