• bzoj3210: 花神的浇花集会


    第二次遇到切比雪夫了

    那么大力转成曼哈顿求中位数

    然而这题有坑点,求出那个曼哈顿的坐标还原成切比雪夫可能不是整点

    那么就把它四周的点都算一次取min就好

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    typedef long long LL;
    
    int n,X[110000],Y[110000];
    LL getsum(int mx,int my)
    {
        LL sum=0;
        for(int i=1;i<=n;i++)
        {
            sum+=(LL(abs(mx-X[i])))+(LL(abs(my-Y[i])));
        }
        return sum;
    }
    int main()
    {
        freopen("a.in","r",stdin);
        freopen("a.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d%d",&X[i],&Y[i]);
            X[i]+=Y[i];Y[i]=X[i]-2*Y[i];
        }
        int mx,my;
        sort(X+1,X+n+1);mx=X[n/2+1];
        sort(Y+1,Y+n+1);my=Y[n/2+1];
        
        if((mx+my)%2==1)
            printf("%d
    ",min(min(getsum(mx-1,my),getsum(mx,my-1)),min(getsum(mx,my+1),getsum(mx+1,my)))/2);
        else 
            printf("%d
    ",getsum(mx,my)/2);
        return 0;
    }
  • 相关阅读:
    MyBatis+Oracle+Sequence
    原来这就是JVM垃圾
    JVM内存布局
    CacheAsidePattern结论
    The LMAX Architecture
    网络编程
    随机存取文件流
    数据流
    打印流
    标准输入流、标准输出流
  • 原文地址:https://www.cnblogs.com/AKCqhzdy/p/9673809.html
Copyright © 2020-2023  润新知