luogu 1816忠诚 线段树
2017-12-14 23:25
246 查看
区间最值
不带修改的线段树……我应该去学一下RMQ
不带修改的线段树……我应该去学一下RMQ
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 100007; int m, n, tree[maxn << 2];//lch[maxn << 2], rch[maxn << 2]; void build(int num, int l, int r) { //lch[num] = l; //rch[num] = r; int mid = (l + r) >> 1; if (l == r) { scanf("%d", &tree[num]); return; } build(num << 1, l, mid); build(num << 1 | 1, mid + 1, r); tree[num] = min(tree[num<< 1], tree[num<< 1 | 1]); } int query(int num, int x, int y, int l, int r) { int mid = (l + r) >> 1; if (x <= l&&r <= y) return tree[num]; int ans = maxn * 100; if (x <= mid) ans = min(ans, query(num<< 1, x, y, l, mid)); if (y > mid) ans = min(ans, query(num<< 1 | 1, x, y, mid + 1, r)); return ans; } int main() { cin >> m >> n; build(1, 1, m); while (n--) { int a, b; scanf("%d%d", &a, &b); printf("%d\n", query(1, a, b, 1, m)); } return 0; }
相关文章推荐
- [luoguP1816] 忠诚(st表 || 线段树)
- 【luogu1816】忠诚 线段树
- 【bzoj1012&&luogu1198】 [JSOI2008]最大数 线段树
- 【Tyvj1038】忠诚 线段树
- Luogu 3373(线段树标记混合下传)
- [我的第一个线段树]忠诚2
- 【洛谷P1816 忠诚】线段树
- tyvj:1038 忠诚 线段树 区间查询
- BZOJ_5249_Luogu_P4364_[2018多省省队联测]_IIIDX_九省联考2018_JLOI2018_线段树
- Luogu_3373 (双 tag 线段树模板)
- p 1038 忠诚 线段树(水)
- tyvj1038--忠诚(线段树)
- NOIP 2016 天天爱跑步 (luogu 1600 & uoj 261) - 线段树
- LuoGu 1983 浅谈如何【车站分级】即数据架构调整加强线段树优化时空复杂度转换
- tyvj 1039忠诚2——初识线段树
- [luogu3373][模板]线段树 2(线段树)
- [luogu]1531 线段树
- 【luogu1471】方差(线段树)
- Luogu 2590 [ZJOI2008]树的统计 / HYSBZ 1036 [ZJOI2008]树的统计Count (树链剖分,LCA,线段树)
- 【luogu3372】模板 线段树1