https://13331.org/26.html
http://en.wikipedia.org/wiki/Range_minimum_query
http://www.cnblogs.com/kuangbin/p/3227420.html
BIT
树状数组解决 RMQ,由于 RMQ 问题无法区间相减,因此只能询问前后缀以及单调的修改。
http://codeforces.com/gym/100460/problem/K
//}/* .................................................................................................................................. */
const int N = int(1e5) + 9;
VII A, B;
int a[N],b[N];
int n;
namespace BIT{
int C1[N], C2[N];
void Add(int C[], int x, int d){
for (;x<=n;x+=low_bit(x)) checkMin(C[x], d);
}
int Sum(int C[], int x){
int res = INF; for (;x;x^=low_bit(x)) checkMin(res, C[x]);
return res;
}
} using namespace BIT;
int main(){
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
#endif
FLC(C1, C2, 0x3f);
int m; RD(n); REP(i, n) A.PB(MP(RD(), i));
REP(i, n) B.PB(MP(RD(), i));
SRT(A); SRT(B);
A.PB(MP(INF, INF)); B.PB(MP(INF, INF));
DWN(i, n, 0){
Add(C1, n-i, A[i].se);
Add(C2, n-i, B[i].se);
}
RD(m);
REP(i, m) RD(a[i]); REP(i, m) RD(b[i]);
// 1..n
REP(i, m){
int aa = Sum(C1, n-UBD(A, MP(a[i], INF)) );
int bb = Sum(C2, n-UBD(B, MP(b[i], INF)) );
//
// cout << aa << " " << bb << endl;
if (aa == bb) puts("Draw");
else puts( aa < bb ? "Mike" : "Constantine");
}
}
Sparse Table
另一种区间分割方案,缺点是不能修改。
在 lca 问题和后缀数组求 lcp 问题中都经常使用。
int ST[LV][N];
int rmq(int l, int r){
if (l > r) swap(l, r); ++r; int lv = lg2(r-l);
return min(ST[0][lv][l], ST[0][lv][r-(1<<lv)]);
}
for ( int lv = 1 ; (1 << lv) <= n ; lv ++ ){
for ( int i = 1 ; i + (1 << lv) <= n + 1 ; i ++ ){
ST[lv][i] = min(ST[lv-1][i], ST[lv-1][i + (1<<(lv-1))]);
}
}
HDU 2888 – Check Corners (矩形。。
http://acm.hust.edu.cn/vjudge/problem/viewSource.action?id=1778847
REP(xx, lg2(n)+1) REP(yy, lg2(m)+1) if (xx+yy){
REP(x, n-_1(xx)+1) REP(y, m-_1(yy)+1){
if (xx){
ST[xx][yy][x][y] = max(ST[xx-1][yy][x][y], ST[xx-1][yy][x+_1(xx-1)][y]);
}
else{
ST[xx][yy][x][y] = max(ST[xx][yy-1][x][y], ST[xx][yy-1][x][y+_1(yy-1)]);
}
}
}
POJ – 2019 Cornfields (正方形。。时空上降一个 log。。
http://acm.hust.edu.cn/vjudge/problem/viewSource.action?id=1778846
ZOJ – 3614 Choir (维护方差。。
http://acm.hust.edu.cn/vjudge/problem/viewSource.action?id=1778842
线段树
最大的好处是支持修改。
https://www.shuizilong.com/house/archives/spoj-3557-ioi04-hermes/




Alca
Amber
Belleve Invis
Chensiting123
Edward_mj
Fotile96
Hlworld
Kuangbin
Liyaos
Lwins
LYPenny
Mato 完整版
Mikeni2006
Mzry
Nagatsuki
Neko13
Oneplus
Rukata
Seter
Sevenkplus
Sevenzero
Shirleycrow
Vfleaking
wangzhpp
Watashi
WJMZBMR
Wywcgs
XadillaX
Yangzhe
三途川玉子
About.me
Vijos
