题目链接


Solution

MD,经过这道题,算是掌握单调队列了...

可以先预处理出点 \((i,j)\) 往上 \(n\) 的最大值和最小值.

然后再横着做一遍单调队列即可.

Code

#include<bits/stdc++.h>
#define in(x) x=read();
#define ll long long
#define N 1001
using namespace std; ll read()
{
char ch=getchar(); ll f=1,w=0;
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){w=w*10+ch-'0';ch=getchar();}
return f*w;
} ll Mx[N][N],Mn[N][N];
ll a,n,m,w[N][N];
ll ans=0x3f3f3f3f3f; int main()
{
in(n); in(m); in(a);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in(w[i][j]); for(int j=1;j<=m;j++)
{
int head=1,tail=0,q[N];
for(int i=1;i<=n;i++)
{
while(head<=tail&&w[q[tail]][j]>=w[i][j]) tail--;
q[++tail]=i;
while(q[tail]-q[head]>=a) head++;
Mn[j][i]=w[q[head]][j];
}
head=1;tail=0;
for(int i=1;i<=n;i++)
{
while(head<=tail&&w[q[tail]][j]<=w[i][j]) tail--;
q[++tail]=i;
while(q[tail]-q[head]>=a) head++;
Mx[j][i]=w[q[head]][j];
}
}
for(int i=a;i<=n;i++)
{
int h=1,t=0,H=1,T=0;
ll minn,maxx,q1[N],q2[N];
for(int j=1;j<=m;j++)
{
while(h<=t&&Mn[q1[t]][i]>=Mn[j][i]) t--;
while(H<=T&&Mx[q2[T]][i]<=Mx[j][i]) T--;
q1[++t]=j;q2[++T]=j;
while(q1[t]-q1[h]>=a) h++;
while(q2[T]-q2[H]>=a) H++;
minn=Mn[q1[h]][i];
maxx=Mx[q2[H]][i];
if(j>=a)
ans=min(ans,maxx-minn);
}
}
cout<<ans;
}

最新文章

  1. 【Swift 2.1】共享文件操作小结(iOS 8 +)
  2. UVa 10300 - Ecological Premium
  3. 九 spring和mybatis整合
  4. jstat用法
  5. 通过样式调整input 中password text默认长度
  6. GPU CUDA常量内存使用
  7. J2EE初探
  8. Unity3D基础学习 NGUI自带Tooltip制作提示文字
  9. MongoDB与PHP的添加、修改、查询、删除
  10. gcc #define 学习记录
  11. 谈论Hibernate级联删除——JPA根据Hibernate实现许多级联删除CascadeType.DELETE_ORPHAN
  12. 【转】国外程序员收集整理的PHP资源大全
  13. Unity之2D Sprite Outline外轮廓效果
  14. &quot;==&quot;和equals方法究竟有什么区别?
  15. 【ASP.NET MVC 学习笔记】- 01 理解MVC模式
  16. html中头meta信息
  17. 防止xss和sql注入:JS特殊字符过滤正则
  18. 【ElasticSearch】 安装
  19. qurtz.net
  20. &quot;添加&quot;模态框中某些数据不被清空

热门文章

  1. python plt 保存jpg出错
  2. C++内联函数、宏定义和普通函数的区别
  3. css实现页面文字不换行、自动换行、强制换行
  4. 远程连接 mySql数据库
  5. 01_1_Socket实现
  6. 不安装oracle客户端如何使用plsql连接数据库
  7. MySQL写delete语句时不支持表别名
  8. lavarel 添加自定义辅助函数
  9. java/jsp执行sql语句的方式
  10. nordic芯片开发——烧写方法记录