隐藏页面特效

洛谷 U4792 Acheing 单调队列

1|0U4792 Acheing


    • 5通过
    • 43提交
  • 题目提供者Acheing
  • 标签
  • 难度尚无评定

  

1|1最新讨论


  • 暂时没有讨论

1|2题目背景


题目并没有什么含义,只是想宣传一下自己的博客,Acheing.com

1|3题目描述


给你一个n*m的矩阵,请你求出其中边长为k的子矩形,使得这个矩形中最大值减最小值最小。

1|4输入输出格式


输入格式:

 

n,m,k 接下来一个n*m的子矩阵.

 

输出格式:

 

一个数,即最小值.

 

1|5输入输出样例


输入样例#1:
5 4 2 1 2 5 6 0 17 16 0 16 17 2 1 2 10 2 1 1 2 2 2
输出样例#1:
1

1|6说明


1<=n,m<=1000

1<=k<=min(n,m)

//单调队列运用 解决二维线段树超时的问题 #include<cstdio> #include<algorithm> using namespace std; inline int read(){ register int x=0;bool f=1; register char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=0;ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return f?x:-x; } const int N=1010; int n,m,w,ans=0x7fffffff; int a[N][N]; int qmax[N],qmin[N],tmax,tmin,wmax,wmin; int maxx[N][N],minn[N][N]; int main(){ n=read();m=read();w=read(); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ a[i][j]=read(); } } for(int j=1;j<=m;j++){ tmax=tmin=1; wmax=wmin=0; for(int i=1;i<=n;i++){ if(i-qmax[tmax]+1>w) tmax++; for(;tmax<=wmax&&a[i][j]>=a[qmax[wmax]][j];wmax--); qmax[++wmax]=i; if(i-qmin[tmin]+1>w) tmin++; for(;tmin<=wmin&&a[i][j]<=a[qmin[wmin]][j];wmin--); qmin[++wmin]=i; if(i>=w) maxx[i][j]=a[qmax[tmax]][j],minn[i][j]=a[qmin[tmin]][j]; } } for(int i=w;i<=n;i++){ tmax=tmin=1; wmax=wmin=0; for(int j=1;j<=m;j++){ if(j-qmax[tmax]+1>w) tmax++; for(;tmax<=wmax&&maxx[i][j]>=maxx[i][qmax[wmax]];wmax--); qmax[++wmax]=j; if(j-qmin[tmin]+1>w) tmin++; for(;tmin<=wmin&&minn[i][j]<=minn[i][qmin[wmin]];wmin--); qmin[++wmin]=j; if(j>=w) ans=min(ans,maxx[i][qmax[tmax]]-minn[i][qmin[tmin]]); } } printf("%d",ans); return 0; }

 


__EOF__

本文作者shenben
本文链接https://www.cnblogs.com/shenben/p/6051582.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   神犇(shenben)  阅读(310)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示