POJ 3264 Balanced Lineup 简单RMQ
2013-10-13 17:04
417 查看
题目:http://poj.org/problem?id=3264
给定一段区间,求其中最大值与最小值的差。
View Code
给定一段区间,求其中最大值与最小值的差。
#include <stdio.h> #include <algorithm> #include <math.h> int dpMin[50010][31], dpMax[50010][31]; int RMinQ(int l, int r) { int k = log(1.0 * r-l+1)/log(2.0); return std::min(dpMin[l][k], dpMin[r-(1<<k)+1][k]); } int RMaxQ(int l, int r) { int k = log(1.0 * r-l+1)/log(2.0); return std::max(dpMax[l][k], dpMax[r-(1<<k)+1][k]); } int main() { int n, m; scanf("%d %d", &n, &m); for(int i = 1; i <= n; i++) { scanf("%d", &dpMin[i][0]); dpMax[i][0] = dpMin[i][0]; } for(int j = 1; (1<<j) <= n; j++) { for(int i = 0; i + (1<<j) - 1 <= n; i++) { dpMax[i][j] = std::max(dpMax[i][j-1], dpMax[i+(1<<(j-1))][j-1]); dpMin[i][j] = std::min(dpMin[i][j-1], dpMin[i+(1<<(j-1))][j-1]); } } int x, y; while(m--) { scanf("%d %d", &x, &y); printf("%d\n", RMaxQ(x, y) - RMinQ(x, y)); } return 0; }
View Code
相关文章推荐
- (简单) POJ 3264 Balanced Lineup,RMQ。
- poj 3264 Balanced Lineup(简单线段树 或 rmq)
- POJ 3264 Balanced Lineup(简单的RMQ)
- POJ 3264 Balanced Lineup(简单RMQ)
- POJ 3264 Balanced Lineup (RMQ问题)
- POJ 3264 Balanced Lineup (RMQ)
- |poj 3264|RMQ|Balanced Lineup
- POJ-3264 Balanced Lineup【RMQ】
- POJ 3264 Balanced Lineup 【RMQ裸题 】
- 【POJ】3264 - Balanced Lineup(RMQ - ST算法 || 线段树)
- poj 3264 Balanced Lineup(RMQ)
- POJ 题目3264 Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup(RMQ)
- POJ_3264_Balanced Lineup(RMQ)
- POJ 3264 Balanced Lineup (RMQ)
- 【POJ 3264】【RMQ 或者线段树】Balanced Lineup 【查询区间内最大最小值的差】
- POJ 3264 Balanced Lineup 【RMQ求区间最值模板题】
- POJ 3264 Balanced Lineup (RMQ)
- 【bzoj 1699 & 1636】【POJ 3264】Balanced Lineup(st表|RMQ)
- POJ 3264 Balanced Lineup RMQ