摘要: http://www.cnblogs.com/TenosDoIt/p/3453089.html#b 线段树的思想是 将一整个区间二分拆成多个不重合的2段区间,知道不能拆分为止。 例如对于数组[2, 5, 1, 4, 9, 3]可以构造如下的二叉树(背景为白色表示叶子节点,非叶子节点的值是其对应数组区 阅读全文
posted @ 2016-07-12 20:44 Shawn_Ji 阅读(1256) 评论(0) 推荐(0) 编辑
摘要: RMQ算法适合求解对一个数组多次查询给定范围内的最值。 预处理操作: 令d[i,j]表示从i开始,长度为2^j的一段元素的最值,可以用递推公式写出d[i,j] = min{ d[i][j-1], d[ i+2^(j-1) ][j-1] } 原理如图所示: 复杂度:因为2^j<=n, 所以d数组的元素 阅读全文
posted @ 2016-07-12 19:13 Shawn_Ji 阅读(255) 评论(0) 推荐(0) 编辑