线段树/树状数组
文章平均质量分 70
SuperSunQ
知人者智,自知者明!胜人者有力,胜己者强!
展开
-
线段树空间复杂度问题
空间消耗: 如果假定原数组的长度为n,那么线段树的节点数就设为4*n。 原理:假设n=2^h,则 从第0行(i=0)开始,第i行有2^i个节点,一共有h行,所以节点总数为1+2+4+8+...+2^h=2^(h+1)-1=2*2^h - 1 等于2n-1 , 这时候难道线段树的空间复杂度就是O(2n-1)吗? 不是的。 这里我们假设了n=2^h,但是题目中的n可没说一定是2的幂次,这导...原创 2018-03-13 08:18:16 · 1901 阅读 · 0 评论 -
线段树·HDU1166 敌兵布阵·单点更新区间求和
题目大意:query a, b查询ab区间的和add a b单点更新,更新a的值sub就是减;AC代码:#include <map>#include <set>#include <stack>#include <cmath>#include <queue>#include <bitset>#include <...原创 2018-03-23 11:46:28 · 157 阅读 · 0 评论 -
线段树·POJ-3468·区间加减区间求和
题目大意:两种操作:C a b c a-b区间加上c;Q查询区间和;解题思路:基本的线段树模板,唯一要提的就是和HDU-1698相比,lazy标记的处理不一样,这题需要区间加减,所以向下传递的时候需要加点,而HDU-1698是区间替换,只需要用lazy标记替换下一个即可;AC代码:#include <map>#include <set>#include <sta...原创 2018-03-23 11:50:56 · 522 阅读 · 0 评论 -
线段树·Just a Hook HDU - 1698 ·区间替换
和POJ3468相对应的区间问题;AC代码:#include <map>#include <set>#include <stack>#include <cmath>#include <queue>#include <bitset>#include <string>#include <ve原创 2018-03-23 11:52:05 · 160 阅读 · 0 评论 -
线段树·POJ-3667·Hotel···区间合并
#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <queue>#include <stack>#include <vector&g原创 2018-03-23 14:05:40 · 130 阅读 · 0 评论