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;
    }
  • 相关阅读:
    结合php ob函数理解缓冲机制
    php中的require-once
    PHP面试题基础问题
    Jquery显示与隐藏input默认值的实现代码
    win7下cmd常用命令
    采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果
    采用cocos2d-x lua 制作数字滚动效果样例
    luac++
    lua相关笔记
    cornerstone知识点
  • 原文地址:https://www.cnblogs.com/pile8852/p/9877869.html
Copyright © 2011-2022 走看看