2 条题解

  • 1
    @ 2025-10-29 9:30:52

    二维st表秒了,这题纯送

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    bool Test_MLE_start;
    constexpr int N=1005;
    int _=1,n,m,k,ans=2e9,a[N][N],maxn[N][N][15],minn[N][N][15];
    inline int reads(){
    	char c=getchar();
    	int x=0,f=1;
    	while(!isdigit(c)){if(c=='-') f=-1;c=getchar();}
    	while(isdigit(c)){x=(x<<3)+(x<<1)+(c^'0');c=getchar();}
    	return x*f;
    }
    inline void files(){
    	freopen("square.in","r",stdin);
    	freopen("square.out","w",stdout);
    }
    inline void clr(){
    //	Don't forget!
    
    }
    int asksmaxn(int x1,int y1,int x2,int y2){
    	int k=log(x2-x1+1)/log(2);
    	return max(max(maxn[x1][y1][k],maxn[x2-(1<<k)+1][y1][k]),max(maxn[x1][y2-(1<<k)+1][k],maxn[x2-(1<<k)+1][y2-(1<<k)+1][k]));
    }int asksminn(int x1,int y1,int x2,int y2){
    	int k=log(x2-x1+1)/log(2);
    	return min(min(minn[x1][y1][k],minn[x2-(1<<k)+1][y1][k]),min(minn[x1][y2-(1<<k)+1][k],minn[x2-(1<<k)+1][y2-(1<<k)+1][k]));
    }
    bool Test_MLE_end;
    signed main(){
    //	printf("%lf Mb\n",(&Test_MLE_end-&Test_MLE_start-1)/1024.0/1024.0);
    //	files();
    //	_=reads();
    	while(_--){
    		clr();n=reads(),m=reads(),k=reads();
    		for(int i=1;i<=n;i++){
    			for(int j=1;j<=m;j++) minn[i][j][0]=maxn[i][j][0]=a[i][j]=reads();
    		}for(int k=1;k<=14;k++){
    			for(int i=1;i+(1<<k)-1<=n;i++){
    				for(int j=1;j+(1<<k)-1<=m;j++){
    					maxn[i][j][k]=max(max(maxn[i][j][k-1],maxn[i][j+(1<<(k-1))][k-1]),max(maxn[i+(1<<(k-1))][j][k-1],maxn[i+(1<<(k-1))][j+(1<<(k-1))][k-1]));
    					minn[i][j][k]=min(min(minn[i][j][k-1],minn[i][j+(1<<(k-1))][k-1]),min(minn[i+(1<<(k-1))][j][k-1],minn[i+(1<<(k-1))][j+(1<<(k-1))][k-1]));
    				}
    			}
    		}for(int i=1;i<=n;i++){
    			for(int j=1;j<=m;j++){
    				if(i+k-1>n||j+k-1>m) continue;
    				int x1=i,y1=j,x2=i+k-1,y2=j+k-1;
    				ans=min(asksmaxn(x1,y1,x2,y2)-asksminn(x1,y1,x2,y2),ans);
    			}
    		}printf("%d\n",ans);
    	}
    	return 0;
    }
    /*
    5 4 2
    1 2 5 6
    0 17 16 0
    16 17 2 1
    2 10 2 1
    1 2 2 2
    */
    • @ 2025-10-29 9:32:39

      唐诗不分高平胖矮,给大家打开和丧的句子。甲方收到客户就会出现。俺家事可多了!!

信息

ID
523
时间
1000ms
内存
256MiB
难度
10
标签
(无)
递交数
4
已通过
3
上传者