博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj1047
阅读量:7101 次
发布时间:2019-06-28

本文共 2087 字,大约阅读时间需要 6 分钟。

单调队列好东西。。。。

先跑第一遍处理出每行以(x,y)结尾长度为n的一段的max与min

再跑一遍处理出每列以(x,y)结尾长度为n的一段的max的max以及min的min

1 #include
2 #define lowbit(a) ((a)&(-(a))) 3 #define clr(a,x) memset(a,x,sizeof(a)) 4 #define rep(i,l,r) for(int i=l;i<(r);i++) 5 typedef long long ll; 6 using namespace std; 7 int read() 8 { 9 char c=getchar();10 int ans=0,f=1;11 while(!isdigit(c)){12 if(c=='-') f=-1;13 c=getchar();14 }15 while(isdigit(c)){16 ans=ans*10+c-'0';17 c=getchar();18 }19 return ans*f;20 }21 const int maxa=1009,maxb=1009,inf=0x7fffffff;22 int a,b,n,A[maxa][maxb],mn[maxa][maxb],mx[maxa][maxb];23 int main()24 { 25 a=read(),b=read(),n=read();26 rep(i,0,a){27 rep(j,0,b) A[i][j]=read();28 }29 rep(i,0,a){30 deque
Qmax,Qmin;31 rep(j,0,b){32 while(!Qmax.empty()&&Qmax.front()
=A[i][j]) Qmin.pop_back();36 Qmax.push_back(j);Qmin.push_back(j);37 if(j>=n-1) mx[i][j]=A[i][Qmax.front()],mn[i][j]=A[i][Qmin.front()];38 }39 }40 int ans=inf;41 rep(i,n-1,b){42 deque
Qmax,Qmin;43 rep(j,0,a){44 while(!Qmax.empty()&&Qmax.front()
=mn[j][i]) Qmin.pop_back();48 Qmax.push_back(j);Qmin.push_back(j);49 if(j>=n-1) ans=min(ans,mx[Qmax.front()][i]-mn[Qmin.front()][i]);50 }51 }52 printf("%d\n",ans);53 return 0;54 }
View Code

1047: [HAOI2007]理想的正方形

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2062  Solved: 1095
[][][]

Description

有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。

Input

第一行为3个整数,分别表示a,b,n的值第二行至第a+1行每行为b个非负整数,表示矩阵中相应位置上的数。每行相邻两数之间用一空格分隔。

Output

仅一个整数,为a*b矩阵中所有“n*n正方形区域中的最大整数和最小整数的差值”的最小值。

Sample Input

5 4 2
1 2 5 6
0 17 16 0
16 17 2 1
2 10 2 1
1 2 2 2

Sample Output

1

HINT

 

问题规模

(1)矩阵中的所有数都不超过1,000,000,000
(2)20%的数据2<=a,b<=100,n<=a,n<=b,n<=10
(3)100%的数据2<=a,b<=1000,n<=a,n<=b,n<=100

 

Source

 
[ ][ ][ ]

转载于:https://www.cnblogs.com/chensiang/p/4742502.html

你可能感兴趣的文章
# 小贼音乐--Swift开发笔记 Step 1
查看>>
【项目管理】低成本提高关键路径成功率
查看>>
使用LUMPY检测结构变异
查看>>
安装Coturn(TURN / STUN服务器)
查看>>
出差第三天
查看>>
度小满获南京银行三年100亿元授信额度,双方并合作共同发力消费金融
查看>>
自动化运维工具Ansible的简单使用
查看>>
at,crontab定时程序
查看>>
zabbix添加端口监控
查看>>
放假前的“例行安检”
查看>>
基本形态学算法
查看>>
PostgreSQL 11 1Kw TPCC , 1亿 TPCB 7*24 强压耐久测试
查看>>
修改toolbar自适应报表宽度
查看>>
Linux基础命令---chkconfig
查看>>
Arista Networks推出400千兆以太网交换机
查看>>
企业网站需要什么样内容才能满足和吸引到用户?
查看>>
关于 Java NIO Buffer 使用的详细解读
查看>>
以太坊系列之十三: evm指令集
查看>>
9、MySQL函数
查看>>
powerdesigner使用sql文件生成uml图
查看>>