JZOJ 4817 【NOIP2016提高A组五校联考4】square
来源:互联网 发布:算法导论吧 编辑:程序博客网 时间:2024/05/29 14:28
square
题目大意
给出一个
现在给出
数据范围
题解
首先,用
Fx,y =min (Fx−1,y ,Fx,y−1 ,Fx−1,y−1 )+1 ;
用图片来解释就是:
由于有边界限制,所以某些以(
附图理解:
求二维的最大值用二维RMQ维护。(即RMQ套RMQ)
Code(Pascal)
var n,m,j,k,l,i,nf,mf,t,x1,x2,y1,y2,le,mi,ri,i1:longint; cf:array[0..10] of longint; f:array[0..10,0..10,0..1000,0..1000] of longint;//为了减少寻址时间,小的两维要前置 x,a:array[0..1020,0..1020] of longint;function max(a,b:int64):int64; begin if a>b then exit(a) else exit(b); end;function min(a,b:int64):int64; begin if a<b then exit(a) else exit(b); end;function ok(o:int64):boolean; var aa,bb,xx,yy,fn,fm:longint; begin xx:=x1+o-1; yy:=y1+o-1; fn:=trunc(ln(x2-xx+1)/ln(2)); fm:=trunc(ln(y2-yy+1)/ln(2)); aa:=max(f[fn,fm,xx,yy],f[fn,fm,xx,y2-cf[fm]+1]); bb:=max(f[fn,fm,x2-cf[fn]+1,yy],f[fn,fm,x2-cf[fn]+1,y2-cf[fm]+1]); if max(aa,bb)>=o then exit(true) else exit(false); end;begin readln(n,m); for i:=1 to n do begin for l:=1 to m do read(a[i,l]); readln; end; cf[0]:=1; for i:=1 to 10 do cf[i]:=cf[i-1]*2; for i:=1 to n do for l:=1 to m do if a[i,l]<>1 then x[i,l]:=0 else x[i,l]:=min(x[i-1,l-1],min(x[i-1,l],x[i,l-1]))+1; nf:=trunc(ln(n)/ln(2)); mf:=trunc(ln(m)/ln(2)); for i:=1 to n do begin for l:=1 to m do f[0,0,i,l]:=x[i,l]; for l:=1 to mf do for j:=1 to m-cf[l]+1 do f[0,l,i,j]:=max(f[0,l-1,i,j],f[0,l-1,i,j+cf[l-1]]); end; for i1:=1 to nf do for i:=1 to n-cf[i1]+1 do for l:=0 to mf do for j:=1 to m-cf[l]+1 do f[i1,l,i,j]:=max(f[i1-1,l,i,j],f[i1-1,l,i+cf[i1-1],j]); readln(t); for i:=1 to t do begin readln(x1,y1,x2,y2); le:=0; ri:=min(x2-x1,y2-y1)+2; while le+1<ri do begin mi:=(le+ri) div 2; if ok(mi) then le:=mi else ri:=mi; end; writeln(le); end;end.
3 0
- JZOJ 4817 【NOIP2016提高A组五校联考4】square
- JZOJ【4817】. 【NOIP2016提高A组五校联考4】square
- JZOJ 4817. 【NOIP2016提高A组五校联考4】square
- 【NOIP2016提高A组五校联考4】square
- 【NOIP2016提高A组五校联考4】square
- 【NOIP2016提高A组五校联考4】square
- 【JZOJ 4817】【NOIP2016提高组 五校联考4】square
- [JZOJ 4815]【NOIP2016提高A组五校联考4】ksum
- JZOJ 4815 【NOIP2016提高A组五校联考4】ksum
- JZOJ 4815. 【NOIP2016提高A组五校联考4】ksum
- JZOJ 4816 【NOIP2016提高A组五校联考4】label
- JZOJ 4816. 【NOIP2016提高A组五校联考4】label
- JZOJ4817. 【NOIP2016提高A组五校联考4】square 二维rmq
- 【JZOJ4817】【NOIP2016提高A组五校联考4】square
- {题解}[jzoj4817]【NOIP2016提高A组五校联考4】square
- jzoj 4811. 【NOIP2016提高A组五校联考1】排队
- JZOJ 4809 【NOIP2016提高A组五校联考1】挖金矿
- JZOJ 4810 【NOIP2016提高A组五校联考1】道路规划
- HihoCoder 1258(2015 Asia Beijing Regional Contest)
- 快速傅里叶变换(FFT)(下)
- 应用层
- centos 安装 docker 及基础命令使用
- 欢迎使用CSDN-markdown编辑器
- JZOJ 4817 【NOIP2016提高A组五校联考4】square
- eclipse导入项目乱码
- 总结9
- java ftp 断点下载,异常重连
- 比特币、区块链技术和应用DECENT
- HIbernate原生sql查询简单案例
- Codeforces 724C Ray Tracing
- 【strust2】Action的配置
- Android系统getprop、dumpsys等相关命令的理解