zoukankan      html  css  js  c++  java
  • <JZOJ5938>分离计划

    emm骚操作

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<algorithm>
    #define rint register int
    #define max(a,b) (a>b?a:b)
    #define min(a,b) (a<b?a:b)
    #define swap(a,b) (a^=b,b^=a,a^=b)
    template <class T>inline void read(T &X)
    {
        X=0;int W=0;char ch=0;
        while(!isdigit(ch))W|=ch=='-',ch=getchar();
        while(isdigit(ch))X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
        X=W?-X:X;return;
    }
    int n,m,a[2010][2010],ma=-1,mi=99999999,ans=999999999;
    void turn()
    {
        for(rint i=1;i<=n;++i)
            for(rint j=1;j<=m/2;++j)
                swap(a[i][j],a[i][m-j+1]);
    }
    void down()
    {
        for(rint i=1;i<=n/2;++i)
            for(rint j=1;j<=m;++j)
                swap(a[i][j],a[n-i+1][j]);
    }
    
    int check(int x)
    {
        int to=m+1;
        for(rint i=1;i<=n;++i)
        {
            int t=0;
            for(rint j=1;j<=min(to,m);++j)
                if(ma-a[i][j]<=x)t=max(t,j);
                else break;
            to=t;
            for(rint j=t+1;j<=m;++j)
                if(a[i][j]-mi>x)return 0;
        }
        return 1;
    }
    
    int sep()
    {
        int l=1,r=ma-mi+1;
        while(l<=r)
        {
            int mid=l+r>>1;
            if(check(mid))r=mid-1;
            else l=mid+1;
        }
        return l;
    }
    int main()
    {
        freopen("separate.in","r",stdin);
        freopen("separate.out","w",stdout);
        read(n),read(m);
        for(rint i=1;i<=n;++i)
            for(rint j=1;j<=m;++j)
            {
                read(a[i][j]);
                ma=max(ma,a[i][j]);
                mi=min(mi,a[i][j]);
            }
        ans=min(ans,sep());
        turn();
        ans=min(ans,sep());
        down();
        ans=min(ans,sep());
        turn();
        ans=min(ans,sep());
        printf("%d
    ",ans);
    return 0;
    }
  • 相关阅读:
    Maven入门
    Windows Java安装
    cdh安装spark遇到的几个BUG
    SQL Server创建存储过程——动态SQL
    IDEA搭建scala开发环境开发spark应用程序
    liunx命令
    java常用 api
    缓存一致性问题
    git 命令
    nginx
  • 原文地址:https://www.cnblogs.com/pile8852/p/9877869.html
Copyright © 2011-2022 走看看