POJ 3264 Balanced Lineup (RMQ线段树)
2014-02-18 13:33
471 查看
http://poj.org/problem?id=3264
模板。
完整代码:
模板。
完整代码:
/*3891ms,1420KB*/ #include <cstdio> #include <algorithm> using namespace std; #define lson l, m, rt << 1 #define rson m + 1, r, rt << 1 | 1 #define root 1, n, 1 const int mx = 50000; int minh[mx << 2], maxh[mx << 2], x; inline void pushup(int rt) { maxh[rt] = max(maxh[rt << 1], maxh[rt << 1 | 1]); minh[rt] = min(minh[rt << 1], minh[rt << 1 | 1]); } void build(int l, int r, int rt) { if (l == r) { scanf("%d", &x); minh[rt] = maxh[rt] = x; return; } int m = (l + r) >> 1; build(lson); build(rson); pushup(rt); } int querymaxh(int ql, int qr, int l, int r, int rt) { if (ql <= l && r <= qr) { return maxh[rt]; } int maxh = 0, m = (l + r) >> 1; if (ql <= m) maxh = querymaxh(ql, qr, lson); if (m < qr) maxh = max(maxh, querymaxh(ql, qr, rson)); return maxh; } int queryminh(int ql, int qr, int l, int r, int rt) { if (ql <= l && r <= qr) { return minh[rt]; } int minh = 1000000, m = (l + r) >> 1; if (ql <= m) minh = queryminh(ql, qr, lson); if (m < qr) minh = min(minh, queryminh(ql, qr, rson)); return minh; } int main() { int n,m,a,b; scanf("%d%d", &n, &m); build(root); while (m--) { scanf("%d%d", &a, &b); printf("%d\n", querymaxh(a, b, root) - queryminh(a, b, root)); } return 0; }
相关文章推荐
- POJ - 3264 Balanced Lineup 线段树解RMQ
- 【POJ 3264】Balanced Lineup(RMQ算法||线段树)
- POJ 3264 Balanced Lineup -- RMQ或线段树
- POJ3264--点更新的线段树--RMQ--Balanced Lineup
- 【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 Balanced Lineup 线段树 RMQ
- POJ - 3264 Balanced Lineup 线段树解RMQ
- poj 3264 Balanced Lineup(rmq vs 线段树)
- 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)
- POJ 3264-Balanced Lineup-RMQ问题