#include #include #include #include using namespace std; const int maxx = 50030; int arry[maxx]; struct node { int left; int right; int mid; int val; ... ...
分类:
其他好文 时间:
2019-01-27 13:00:21
阅读次数:
160
此题题意很好懂: 给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c。 需要用到线段树的,update:成段增减,query:区间求和 介绍Lazy思想:lazy-tag思想,记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我 ...
分类:
其他好文 时间:
2019-01-26 20:57:46
阅读次数:
180
"CF446C题意:" 给你一个数列$a_i$,有两种操作:区间求和;$\sum_{i=l}^{r}(a[i]+=fib[i l+1])$。$fib$是斐波那契数列。 思路 (一) $fib[n] = \frac{\sqrt5}{5}\times [(\frac{1+\sqrt5}{2})^n (\ ...
分类:
其他好文 时间:
2019-01-16 13:07:19
阅读次数:
265
操作0、1:区间赋值 操作2:区间异或 操作3:区间求和 操作4:区间最长连续段 我们用线段树打lazy标记的方式维护:某段区间从左向右和从右向左延伸的0和1的长度、某段区间内0和1的最长长度、区间和。 然后分类讨论pushdown与pushup即可 cpp include"cstdio" incl ...
分类:
其他好文 时间:
2019-01-01 21:43:43
阅读次数:
186
CST2018 3-1-1 Sum (15%) 简单的线段树,单点修改,区间求和。 很简单。 CST2018 3-1-2 Max (20%) 高级的线段树。 维护区间最大和,区间和,左边最大和,右边最大和。 单点修改的时候一路吧区间都改了就好了。 求子段最大值也就判断一下左右就好了。 略微复杂。 C ...
分类:
其他好文 时间:
2018-12-24 10:28:08
阅读次数:
177
线段树 题意: 给定一个01串 要求支持两种操作: 1 区间 xor 2 区间求和 做法: 普通的线段树的求和 用 rev 表示该区间是否被 xor 因为 xor 两次就相当于没有 xor 所以当区间 xor 的时候 对 rev 取反, sum = 区间长度 sum code: cpp includ ...
分类:
其他好文 时间:
2018-12-14 15:35:31
阅读次数:
137
1、hdu-4325 题意:插花,要么给出插花的范围,要么查询某个点的花的个数。 思路:通过更新,每次更新区间S到T的数值,表插入花(这一点一开始没想到), 要么查询某个点的花的数目。 (与以往单纯的区间查询和单点修改的区间和不太相同)。 2、hdu-1166 典型的单点查找,区间求和的问题。(套模 ...
分类:
编程语言 时间:
2018-12-07 21:23:31
阅读次数:
206
题目链接:A Simple Problem with Integers 题意:N个数字,M次操作;操作分为两种,第一种将$[L,R]$区间内的每个数都加上C,第二种为求$[L,R]$区间内的数字和。 题解:线段树基本操作,区间修改和区间求和 1 #include <cstdio> 2 #define ...
分类:
其他好文 时间:
2018-11-18 22:39:21
阅读次数:
169
HDU 1166(敌兵布阵)(树状数组 单点更新区间求和) #include<iostream> #include<cstring> #include<cmath> using namespace std; #define lowbit(x) x & (-x)//lowbit函数 #define L ...
分类:
编程语言 时间:
2018-10-27 21:45:12
阅读次数:
196
Given a 2D matrix matrix, find the sum of the elements inside the rectangle defined by its upper left corner (row1, col1) and lower right corner (row2 ...
分类:
其他好文 时间:
2018-10-24 10:56:01
阅读次数:
142