poj2019(二维RMQ)
题目连接:http://poj.org/problem?id=2019
只是增加一个维度,类比一维即可。
好理解,但是可以做的更好http://www.cnblogs.com/yijiull/p/6757935.html
1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 using namespace std; 6 const int maxn=270; 7 int p[maxn][maxn]; 8 int pmax[maxn][maxn][20]; 9 int pmin[maxn][maxn][20]; 10 int n,b,k; 11 12 void RMQ_INIT() 13 { 14 int f=log(n+0.0)/log(2.0); 15 for(int i=1;i<=n;i++) 16 for(int j=1;j<=n;j++) 17 pmax[i][j][0]=pmin[i][j][0]=p[i][j]; 18 for(int i=1;i<=n;i++) 19 for(int k=1;k<=f;k++) 20 for(int j=1;j+(1<<k)-1<=n;j++) 21 { 22 pmax[i][j][k]=max(pmax[i][j][k-1],pmax[i][j+(1<<k-1)][k-1]); 23 pmin[i][j][k]=min(pmin[i][j][k-1],pmin[i][j+(1<<k-1)][k-1]); 24 } 25 return; 26 } 27 28 29 int rmq(int r,int c) 30 { 31 int l=c,rr=c+b-1; 32 int k=log(b+0.0)/log(2.0); 33 int maxx=-0x3f3f3f3f,minn=0x3f3f3f3f; 34 for(int i=r;i<r+b;i++) 35 { 36 maxx=max(maxx,max(pmax[i][l][k],pmax[i][rr-(1<<k)+1][k])); 37 minn=min(minn,min(pmin[i][l][k],pmin[i][rr-(1<<k)+1][k])); 38 } 39 return maxx-minn; 40 } 41 int main() 42 { 43 while(scanf("%d%d%d",&n,&b,&k)!=EOF) 44 { 45 for(int i=1;i<=n;i++) 46 for(int j=1;j<=n;j++) 47 scanf("%d",&p[i][j]); 48 RMQ_INIT(); 49 int r,c; 50 while(k--) 51 { 52 scanf("%d%d",&r,&c); 53 printf("%d\n",rmq(r,c)); 54 } 55 } 56 57 }
转载于:https://www.cnblogs.com/yijiull/p/6754787.html
poj2019(二维RMQ)相关推荐
- POJ2019(二维RMQ问题 ST)
题目:Cornfields 只是注意本题数据定义小一点,不然会超内存. #include <stdio.h> #include <iostream> #include < ...
- P2216 [HAOI2007]理想的正方形(二维RMQ)
题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入输出格式 输入格式: 第一行为3个整数,分别表示a,b,n的值 第二行至 ...
- 【bzoj1047】[HAOI2007]理想的正方形 二维RMQ
题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入 第一行为3个整数,分别表示a,b,n的值第二行至第a+1行每行为b个非 ...
- 理想的正方形 HAOI2007(二维RMQ)
理想的正方形 省队选拔赛河南 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题目描述 Description 有一个a*b的整数组成的矩阵,现 ...
- HDU2888(二维RMQ)
题目:Check Corners 本题碉堡了,内存限制好紧,再大一点都不行,还只能用int,开始用short WA了好多次..... 题意:给一个矩阵,然后给Q个询问,每个询问有四个数,分别代表询问的 ...
- Codeforces713D(二维RMQ)
区间最大子正方形问题. 预处理后二分答案验证 AC Code: #include<bits/stdc++.h> #define maxn 1005 #define lim 10 using ...
- 2018山东冬令营:UPC 计数问题 (二维树状数组)
计数问题 时间限制: 1 Sec 内存限制: 128 MB 提交: 185 解决: 51 [提交][状态][讨论版][命题人:admin] 题目描述 一个n*m的方格,初始时每个格子有一个整数权 ...
- 条形码?二维码?生成、解析都在这里!
二维码生成与解析 一.生成二维码 二.解析二维码 三.生成一维码 四.全部的代码 五.pom依赖 直接上代码: 一.生成二维码 public class demo {private static fi ...
- OpenCV 笔记(08)— 二维点、三维点、基于 Mat 的 std::vector 等常用数据结构的定义和输出
1. 定义和输出二维点 Point2f p2(3, 4);cout << "[二维点] is "<< endl << p2 << e ...
最新文章
- Nginx + Tomcat + HTTPS 配置不需要在 Tomcat 上启用 SSL 支持
- 《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令
- Ubuntu安装无线网卡驱动
- Ghostscript的介绍
- 根据车辆型号自动生成车辆编号
- dos命令行的四种打开方式
- 手机html在哪个文件里,手机相册在哪个文件夹,教您手机图片存放在哪里
- 微信公众号接入百度天气API接口实现代码
- 服务器证书有问题苹果手机,iPhone应用程序中的“服务器证书不可信”错误
- [跟进]_中国银联悄然推出B2C网站-银联在线商城
- ibm服务器前面板显示屏,ibm_x3500服务器前面板指示灯的含义.doc
- 用python写猜数字游戏
- 计算机网络ping用法,Ping命令及用法详解
- Nodejs中使用ioredis库
- opencv曝光过度_使用 OpenCV 进行曝光融合(Exposure Fusion)成像
- 远程命令执行漏洞与远程代码执行漏洞33333
- 动态规划简单例子——国王与金矿(c++)
- 按键精灵,简单游戏脚本
- ubuntu体验python_22款神奇的Ubuntu软件,帮你的系统成为全场最佳
- VBox组件内部局域网
热门文章
- python判断对错题_python 初学者错题本
- 【必看】谈谈变更过程中的运维意识
- java mysql 占位符_在Java中编写带占位符的SQL语句
- getbean方法找不到bean_和平精英:一直找不到敌人?5个方法,让你彻底摆脱“瞎子”...
- java发送加密报文_RSA加密---从后台到客户端实现报文加解密
- html 关键帧作标记,关键帧有什么用?
- python类属性描述_如何描述Python对象,以及属性、标识、类型和值之间的关系?...
- ubuntu20分区_「图」Canonical希望Ubuntu 20.04 LTS Server Installer更快更舒适
- unet论文_图像分割之RefineNet 论文笔记
- 基于matlab的捷联惯导算法设计及仿真,基于 Matlab 的捷联惯导算法设计及仿真1doc.doc...