[luoguP1816] 忠诚(st表 || 线段树)
2017-06-11 15:55
218 查看
其实我就是想练练 st表
本以为学了线段树可以省点事不学 st表 了
但是后缀数组中用 st表 貌似很方便
所以还是学了吧,反正也不难
——代码
#include <cstdio> #define N 100001 #define min(x, y) ((x) < (y) ? (x) : (y)) int n, m; int a , d [21]; int main() { int i, j, k, x, y; scanf("%d %d", &n, &m); for(i = 1; i <= n; i++) scanf("%d", &a[i]); for(i = 1; i <= n; i++) d[i][0] = a[i]; for(j = 1; (1 << j) <= n; j++) for(i = 1; i + (1 << j) - 1 <= n; i++) d[i][j] = min(d[i][j - 1], d[i + (1 << (j - 1))][j - 1]); for(i = 1; i <= m; i++) { scanf("%d %d", &x, &y); k = 0; while((1 << (k + 1)) <= y - x + 1) k++; printf("%d ", min(d[x][k], d[y - (1 << k) + 1][k])); } return 0; }View Code
相关文章推荐
- luogu 1816忠诚 线段树
- ST算法解RMQ模板(洛谷1816 忠诚)
- 计蒜客 管家的忠诚(二) 线段树
- JD2715 忠诚2——线段树
- HDU 5875 Function 线段树 || (ST表 + 二分)
- tyvj 1039忠诚2——初识线段树
- luoguP3834 【模板】可持久化线段树 1(主席树)
- 51nod 1766 树上的最远点对 | LCA ST表 线段树 树的直径
- [luoguP2982][USACO10FEB]慢下来Slowing down(dfs序 + 线段树)
- RMQ问题的ST、树状数组和线段树解法
- tyvj:1038 忠诚 线段树 区间查询
- 【Tyvj1038】忠诚 线段树
- [我的第一个线段树]忠诚2
- [线性基 树链剖分 线段树 || ST表 || 点分治] BZOJ 4568 [Scoi2016]幸运数字
- 【洛谷P1816 忠诚】线段树
- codeevs 2173 忠诚(线段树)
- NYOJ 1068 ST(线段树插线问线)
- <st表模板> codevs 2173 忠诚
- ACM模板——区间问题(线段树 RMQ-ST)模板
- codevs2173忠诚(st表)