摘要:
题意:一个数列,每次操作可以是将某区间数字都加上一个相同的整数,也可以是询问一个区间中所有数字的和。(这里区间指的是数列中连续的若干个数)对每次询问给出结果。分析:线保留型线段树,线段树中每个节点有两个变量:增量与和,一个记录当前节点对应区间被整体增加了几,另一个记录该区间的真子区间被增加了之后的和是多少。(该区间数字当前和=和+增量×区间长度)修改时更新路线上不完整覆盖的节点的和变量以及恰好完整覆盖的节点的增量变量。询问可以通过回溯过程通过各节点两变量值求得。三种线段树,参见:http://www.cnblogs.com/rainydays/archive/2011/09/06/2 阅读全文
posted @ 2012-11-19 17:25
undefined2024
阅读(2452)
评论(0)
推荐(0)
摘要:
基础线段树View Code //poj3264#include <iostream>#include <algorithm>#include <numeric>using namespace std;const int maxn = 50002;struct cnode{ int l, r, nmin, nmax; cnode *pleft, *pright;};int ncount, cow[maxn], n, q, ansmax, ansmin;cnode tree[maxn * 2];void init(){ ... 阅读全文
posted @ 2012-11-19 17:15
undefined2024
阅读(542)
评论(0)
推荐(0)

浙公网安备 33010602011771号