RMQ模板题 poj3264 Balanced Lineup
来源:互联网 发布:pdf.js 打开 word文档 编辑:程序博客网 时间:2024/06/04 01:31
poj3264 ST算法模板题
#include <iostream>#include <cstdio>using namespace std;const int maxn = 80000;const int maxm = 30;int d_min[maxn][maxm],d_max[maxn][maxm],a[maxn];int n;void RMQ_init(){ int i,j; for(i = 1; i <= n; i++){ d_min[i][0] = a[i]; d_max[i][0] = a[i]; } for(j = 1; (1<<j) <= n; j++) for(i = 1; i + j - 1 <= n; i++){ d_min[i][j] = min(d_min[i][j-1],d_min[i + (1<<(j-1))][j-1]); d_max[i][j] = max(d_max[i][j-1],d_max[i + (1<<(j-1))][j-1]); }}int RMQ_min(int l,int r){ int k = 0; while((1<<(k+1)) <= r-l+1) k++; return min(d_min[l][k], d_min[r-(1<<k)+1][k]);}int RMQ_max(int l,int r){ int k = 0; while((1<<(k+1)) <= r-l+1) k++; return max(d_max[l][k], d_max[r-(1<<k)+1][k]);}int main(){ int q,l,r,i; scanf("%d%d",&n,&q); for(i = 1; i <= n; i++) scanf("%d",&a[i]); RMQ_init(); while(q--){ scanf("%d%d",&l,&r); printf("%d\n",RMQ_max(l,r)-RMQ_min(l,r)); } return 0;}
阅读全文
0 0
- RMQ模板题 poj3264 Balanced Lineup
- POJ3264-Balanced Lineup RMQ
- POJ3264 Balanced Lineup (RMQ)
- poj3264 Balanced Lineup(RMQ)
- RMQ经典题:【POJ3264】 Balanced Lineup
- poj3264 Balanced Lineup(RMQ +st)
- POJ3264 Balanced Lineup(RMQ)
- POJ3264 Balanced Lineup (RMQ & ST)
- POJ3264--Balanced Lineup(线段树模板题)
- poj3264--Balanced Lineup(RMQ求最大最小)
- POJ3264 Balanced Lineup RMQ 线段树
- POJ3264 Balanced Lineup 线段树||RMQ
- poj3264 Balanced Lineup(RMQ裸题)
- POJ 3264 Balanced Lineup【RMQ模板题】
- poj3438 Balanced Lineup(RMQ模板题)
- POJ-3264 Balanced Lineup(rmq模板题)
- poj3264. RMQ模板题
- POJ3264 Balanced Lineup 【RMQ问题的四种解法】
- 当RPM包安装遇上“依赖性”问题时的解决办法
- 329. Longest Increasing Path in a Matrix
- 【Scikit-Learn 中文文档】随机梯度下降
- 欢迎使用CSDN-markdown编辑器
- div 层基础知识
- RMQ模板题 poj3264 Balanced Lineup
- 剑指offer:数组中重复的数字
- 最大子段-n上找m个子段的和为最大-动态规划-二维dp+滚动数组dp优化
- 彻底剖析numpy的数值运算
- 模拟好题 CodeForces 864CBus
- C++文件操作与文件流学习
- 笔记
- 【Scikit-Learn 中文文档】最近邻
- <Java算法实现--LeetCode(4)(7)>2017-11-22