poj--2019 Cornfields 2维RMQ

题目大意: 给定一个 N*N 的数组   求以(x1, y1) 为左上角  (x1 + b -1 ,y1 + b -1)为右下角 这个b*b的范围内最大值减最小值

看到最大值最小值当然想到RMQ啦

View Code
//Accepted    27392K    594MS    C++    2416B
#include <iostream>
#include <stdio.h>
#include <cmath>
using namespace std;
const int maxn = 301;
int N;
int val[maxn][maxn];
int st_min[maxn][maxn][9][9];
int st_max[maxn][maxn][9][9];
inline int minn(int a,int b){ return a>b?b:a; }
inline int maxx(int a,int b){ return a>b?a:b; }
void RMQ_2D_PRE()
{for(int row = 1; row <= N; row++)for(int col = 1; col<=N; col++){st_min[row][col][0][0] = val[row][col];st_max[row][col][0][0] = val[row][col];}int m = log(double(N)) / log(2.0);for(int i=0; i<=m; i++)for(int j=0; j<=m; j++){if(i == 0 && j==0)continue;for(int row = 1; row+(1<<i)-1 <= N; row++)for(int col = 1; col+(1<<j)-1 <= N; col++){if(i == 0){st_min[row][col][i][j] = minn(st_min[row][col][i][j-1] , st_min[row][col+(1<<(j-1))][i][j-1]);  //水平划分st_max[row][col][i][j] = maxx(st_max[row][col][i][j-1] , st_max[row][col+(1<<(j-1))][i][j-1]);  //水平划分
                        }else{st_min[row][col][i][j] = minn(st_min[row][col][i-1][j] , st_min[row+(1<<(i-1))][col][i-1][j]);    //竖直划分st_max[row][col][i][j] = maxx(st_max[row][col][i-1][j] , st_max[row+(1<<(i-1))][col][i-1][j]);    //竖直划分
                        }}}
}
int RMQ_2D_min(int x1,int x2,int y1,int y2)
{int kx = log(double(x2 - x1 +1)) / log(2.0);int ky = log(double(y2 - y1 +1)) / log(2.0);int m1 = st_min[x1][y1][kx][ky];int m2 = st_min[x2-(1<<kx)+1][y1][kx][ky];int m3 = st_min[x1][y2-(1<<ky)+1][kx][ky];int m4 = st_min[x2-(1<<kx)+1][y2-(1<<ky)+1][kx][ky];return minn( minn(m1,m2), minn(m3,m4) );}
int RMQ_2D_max(int x1,int x2,int y1,int y2)
{int kx = log(double(x2 - x1 +1)) / log(2.0);int ky = log(double(y2 - y1 +1)) / log(2.0);int m1 = st_max[x1][y1][kx][ky];int m2 = st_max[x2-(1<<kx)+1][y1][kx][ky];int m3 = st_max[x1][y2-(1<<ky)+1][kx][ky];int m4 = st_max[x2-(1<<kx)+1][y2-(1<<ky)+1][kx][ky];return maxx( maxx(m1,m2), maxx(m3,m4) );}
int main(void)
{int M,B;int x1,y1;while(scanf("%d%d%d",&N,&B,&M)!=EOF){    for(int i=1; i<=N; i++)for(int j=1; j<=N; j++)scanf("%d",&val[i][j]);            RMQ_2D_PRE();                    while(M--){scanf("%d%d",&x1,&y1);            printf("%d\n",RMQ_2D_max(x1,x1+B-1,y1,y1+B-1)-RMQ_2D_min(x1,x1+B-1,y1,y1+B-1));}}return 0;
}

转载于:https://www.cnblogs.com/asen32/archive/2012/08/22/2651495.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学生渐进片add如何给_渐进镜片的说明与镜架选择

近年来&#xff0c;许多眼镜店都进行了渐进多焦点镜片(下面简称&#xff1a;渐进镜片)的推广与应用&#xff0c;产品也越来越普及&#xff0c;但由于很多眼镜店并没有对从业人员进行系统培训&#xff0c;同时对渐进镜片的了解又甚少&#xff0c;在一些注意事项上经验不足&#…

html5 svg组态图,绘制SVG内容到Canvas的HTML5应用

SVG与Canvas是HTML5上绘制图形应用的两种完全不同模式的技术&#xff0c;两种绘制图形方式各有优缺点&#xff0c;但两者并非水火不容&#xff0c;尤其是SVG内容可直接绘制在Canvas上的功能&#xff0c;使得两者可以完美的融合在一起&#xff0c;让Canvas可享用到现有丰富的SVG…

天哪!男朋友对大姨妈的误解有多深?

1 大姨妈就是随时随地给你一拳那种▼2 怀疑不是袜子太紧而是腿太粗▼3 画面戛然而止希望小姑娘她妈下手轻点▼4 大家都是艺术生▼5 “你妈式”量体温▼6 当代网友上网冲浪的最大阻碍▼7 给你个眼神你自己体会~▼你点的每个赞&#xff0c;我都认真当成了喜欢

Dapr + .NET 实战(十四)虚拟机集群部署 mDNS + Consul

前面我们说了在单机模式下和K8S集群下的Dapr实战&#xff0c;这次我们来看看如何在不使用K8S的情况下&#xff0c;在一个传统的虚拟机集群里来部署Dapr。1.环境准备我们准备两台centos7虚拟机Dapr1&#xff1a;192.168.43.131Dapr2&#xff1a;192.168.43.1322.Dapr CLI安装分别…

哪个男孩不想拥有这种牌面?

1 全国最嗨的烧烤地摊没有之一▼2 为什么我们的雨刷和别人的不一样&#xff1f;▼3 好羡慕有这样的妈妈▼4 猫&#xff1a;你别进来&#xff0c;我这儿不接待小孩儿&#xff01;孩子&#xff1a;我就进去看看▼5 像极了我考试的样子▼6 今天教大家一个找钻石的好办法▼7 …

html怎么快速打出来的,javascript – 快速打印HTML5画布

我搜索了很多,找到了一个完美的解决方案:)使用onclick事件function printCanvas(){var dataUrl document.getElementById(anycanvas).toDataURL(); //attempt to save base64 string to server using this varvar windowContent ;windowContent windowContent Print canvas…

OutOfMemoryException异常解析

一、概述在国庆休假快结束的最后一天晚上接到了部门老大的电话&#xff0c;某省的服务会出现崩溃问题。需要赶紧修复&#xff0c;没错这次的主角依旧是上次的“远古项目”没有办法同事都在休假没有人能帮忙开电脑远程只能打车去公司。远程链接上服务器之后查看日志发现抛出的堆…

LeetCode:Largest Number - 求整型数组中各元素可拼合成的最大数字

2019独角兽企业重金招聘Python工程师标准>>> 1、题目名称 Largest Number&#xff08;求整型数组中各元素可拼合成的最大数字&#xff09; 2、题目地址 https://leetcode.com/problems/largest-number/ 3、题目内容 英文&#xff1a;Given a list of non negative i…

js实现样式切换

2019独角兽企业重金招聘Python工程师标准>>> <ul id"styles"> <li id"default">经典</li> <li id"blue">淡蓝</li> <li id"brown">棕色</li> </ul> $("#styles li&…

CV算法面试题学习

本文记录了CV算法题的学习。 CV算法面试题学习 1 点在多边形内&#xff08;point in polygon&#xff09;2 高斯滤波器3 ViTPatch EmbeddingPosition EmbeddingTransformer Encoder完整的ViT模型 4 SE模块5 Dense Block6 Batch Normalization 1 点在多边形内&#xff08;point …

【推荐软件】wingrep

linux下搜索文本中的字符串时&#xff0c;习惯了find和grep的结合&#xff0c;很强大&#xff0c;但是windows下没有这两个命令&#xff0c;不用IDE编程时搜索略显不便。google一下&#xff0c;原来有wingrep工具可以用&#xff0c;可以实现相同的功能&#xff0c;来推荐一下给…

flash如何转html5,闪客精灵如何将Flash格式转换成HTML5

如何将Flash格式转换成HTML5?闪客精灵就是为Flash格式转换为HTML5而生的&#xff0c;他能够快速的将任何Flash文件&#xff0c;不管是SWF还是EXE格式的Flash格式转换成能被HTML5识别的HTML格式的文件。那么如何用闪客精灵将Flash格式转换为HTML5呢?下面是关于闪客精灵将Flash…

一壶 100℃ 的开水从多高倒进嘴里不会觉得烫?

全世界只有3.14 % 的人关注了爆炸吧知识先说结论&#xff1a;大约50米左右。 水从高空落下&#xff0c;先倒的水快&#xff0c;后倒的水慢&#xff0c;所以必然很快撕裂&#xff0c;成为细小的水滴。因此&#xff0c;这里就只讨论水滴的散热问题&#xff0c;而不考虑一大团水的…

当你的技术债务到期时,LinkedIn的故事 | IDCF

原文&#xff1a;https://www.linkedin.com/pulse/when-your-tech-debt-comes-due-kevin-scott/译者&#xff1a;冬哥那是 2011 年 10 月&#xff0c;就在 LinkedIn 上市后的第二次财报发布之前的几周。LinkedIn的业务做得很好&#xff0c;从任意可见角度来衡量&#xff0c;可以…

再现神人!仅仅只花4天半就解开了史上最难密码,这下整个圈子都炸开了.........

全世界只有3.14 % 的人关注了爆炸吧知识鲁迅先生曾说&#xff0c;记录这东西&#xff0c;就是用来打破的。前阵子程序员圈子一定热呼的不可开交&#xff0c;咋回事&#xff1f;还不是因为有个程序员妹子捅出了一个大篓子。事情是这样的&#xff0c;在德国慕尼黑有一个名叫 Leah…

拥抱开源!除了微软红帽,这些国际大厂你认识几个?

在上世纪 90 年代&#xff0c;开源操作系统 Linux 出现时&#xff0c;有能力自行安装使用的用户并不多。因此&#xff0c;早期开源社区和开源软件厂商的一大工作就是向用户售卖书籍&#xff0c;提供初始的技术支持。比如基于 Linux 的内核&#xff0c;一批开源软件厂商开发出不…

湖南工业职业技术学院计算机协会,计算机网络协会

一、协会简介于2005年成立&#xff0c;系信息工程系直属协会。以学习网络知识理论及技术实践为主&#xff0c;以业余活动为辅的双向协会。由我系专业教研团队亲自授课教学&#xff0c;达到教学合一效果。注重培养高技能、高素质综合能力人才。二、协会宗旨以普及计算机基础知识…

浙大月赛C题(2012/8)Cinema in Akiba(线段树)

http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId4791 &#xff08;1&#xff09;第一次写浙大的题目&#xff0c;这题让我十分意外&#xff0c;基本的线段树类型&#xff08;求第x个空位&#xff09;。 &#xff08;2&#xff09;电影院里&#xff0c;一次…

生病了女朋友说要「陪床」,结果真的是陪床不是陪我......

1 生病住院了女朋友说要来陪床结果真的是陪床不是陪我......▼2 气氛突然微妙......▼3 隔壁的一家人都馋哭了&#xff01;▼4 上街偷拍帅哥的正确方法▼5 WOW!AMAZING!▼6 史上最强小学生出现了&#xff01;▼‍7 养二哈不光挺费家具的还挺废人的▼你点的每个赞&#x…

System.Text.Json 自定义 Conveter

System.Text.Json 自定义 ConveterIntroSystem.Text.Json 作为现在 .NET 默认提供的高性能 JSON 序列化器&#xff0c;对于一些比较特殊类型支持的并不太好&#xff0c;业务需求中总是有各种各样的需要&#xff0c;很多时候就需要用到自定义 Converter &#xff0c;对于微软新出…