zoukankan      html  css  js  c++  java
  • [bzoj3210] 花神的浇花集会

      根据网上题解可得(QAQ。。把坐标变成(x-y,x+y)后,原本的切比雪夫距离就是现在的曼哈顿距离的一半。。

      似乎金组题里也有道一模一样的。

      分别求出横纵坐标的中位数。。但如果所取的点的x、y奇偶性不同。。那在原图里是没有对应点的。

      所以可能要再试一下旁边的四个点

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 #include<algorithm>
     5 #include<cstdlib>
     6 #define ll long long
     7 using namespace std;
     8 const int maxn=100233;
     9 int x[maxn],y[maxn];
    10 int i,j,k,n,m;
    11 ll ans;
    12 int ra;char rx;
    13 inline int read(){
    14     rx=getchar(),ra=0;
    15     while(rx<'0'||rx>'9')rx=getchar();
    16     while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra;
    17 }
    18 inline ll get(int a,int b){
    19     ll sm=0;
    20     for(int i=1;i<=n;i++)
    21         sm+=abs(a-x[i])+abs(b-y[i]);
    22     return sm;
    23 }
    24 int main(){
    25     n=read();
    26     for(i=1;i<=n;i++)j=read(),k=read(),x[i]=j+k,y[i]=j-k;
    27     sort(x+1,x+1+n),sort(y+1,y+1+n);
    28     int mx=x[(1+n)>>1],my=y[(1+n)>>1];
    29     if((mx^my)&1)
    30         ans=min(get(mx-1,my),min(get(mx+1,my),min(get(mx,my-1),get(mx,my+1))));
    31     else ans=get(mx,my);
    32     printf("%lld
    ",ans>>1);
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    javascript DOM事件总结
    MySQL索引优化实例说明
    CSV导出大量数据
    最详细的PHP flush()与ob
    XSS攻击(跨站攻击)
    MySQL视图
    MySQL索引
    待整理
    Height、clientHeight、scrollHeight、offsetHeight 、scrollTop、offsetTop
    Cookie和Session的区别
  • 原文地址:https://www.cnblogs.com/czllgzmzl/p/5301740.html
Copyright © 2011-2022 走看看