zoukankan      html  css  js  c++  java
  • [HAOI2007]理想的正方形

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <deque>
    #include <map>
    #define range(i,a,b) for(int i=a;i<=b;++i)
    #define LL long long
    #define rerange(i,a,b) for(int i=a;i>=b;--i)
    #define fill(arr,tmp) memset(arr,tmp,sizeof(arr))
    using namespace std;
    int a,b,n,tt[1005][1005],gg[1005][1005],mm[2][1005][1005];
    pair<int,int>q[1005];
    void init(){
        cin>>a>>b>>n;
        range(i,1,a)range(j,1,b)cin>>tt[i][j];
    }
    void cal(int x){
        range(i,1,a){
            int left=1,right=0;
            range(j,1,b){
                while(left<=right&&j-q[left].second>=n)++left;
                if(!x)while(left<=right&&tt[i][j]>=q[right].first)--right;
                else while(left<=right&&tt[i][j]<=q[right].first)--right;
                q[++right]=make_pair(tt[i][j],j);
                gg[i][j]=q[left].first;
            }
        }
        range(j,n,b){
            int left=1,right=0;
            range(i,1,a){
                while(left<right&&i-q[left].second>=n)++left;
                if(!x)while(left<=right&&gg[i][j]>=q[right].first)--right;
                else while(left<=right&&gg[i][j]<=q[right].first)--right;
                q[++right]=make_pair(gg[i][j],i);
                mm[x][i][j]=q[left].first;
            }
        }
    }
    void solve(){
        cal(0);cal(1);
        int ans=1<<30;
        range(i,n,a)
        range(j,n,b)ans=min(ans,mm[0][i][j]-mm[1][i][j]);
        cout<<ans<<endl;
    }
    int main() {
        init();
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    如何判定某个类的职责是否够"单一"?
    Guava中的Cache简易源码分析
    为什么尽量少用继承?
    聊聊抽象类和接口
    WINDOW 搭建 ELK 2.4.0
    摇摇棒,理工男的择偶权(上)
    C++值多态:传统多态与类型擦除之间
    C++值元编程
    STM32学习笔记——printf
    C++98/11/17表达式类别
  • 原文地址:https://www.cnblogs.com/Rhythm-/p/9339298.html
Copyright © 2011-2022 走看看