线段树
setidfine
这个作者很懒,什么都没留下…
展开
-
POJ_3468 线段树--区间的动态赋值和求和
如果每次赋值都遍历到叶子节点,则赋值的复杂度变为O(N),因此赋值时深入到需要赋值的那个区间就应当停止,记录当前的增量,如果下次搜索时,根据需要向下传递这个增量,这样的复杂度就降下来了#include using namespace std;const int MAX_N = 100000;int A[MAX_N+5];int N, Q;struct Node{ int left; int right; __int64 sum; __int64原创 2011-03-23 16:39:00 · 511 阅读 · 0 评论 -
POJ_2352线段树
因为输入的 Y 是非递减序列,所以只用考虑输入的 X 值,当输入时,该点的level即是在该点之前已经输入了多少个 x 坐标比当前小的星星数。所以我们要记录的是任何 x 坐标之前已经出现了多少个星星。对于动态区间问题,线段树是利器!#include using namespace std;typedef unsigned short unshort;const unshort MAX_N = 32000;unshort N;unshort ans[15005];struct Node原创 2011-03-23 01:37:00 · 424 阅读 · 0 评论 -
POJ_2528 线段树+离散化
看了那么多代码和解说,什么也没有看懂,最后找到了这篇博文(http://www.cppblog.com/MiYu/archive/2010/10/15/129997.aspx),茅塞顿开啊!代码就不贴了,直接看那边博文原创 2011-03-27 13:25:00 · 411 阅读 · 0 评论