此题相对于模板一,加了个区间乘,于是在模板一的基础上需要多开个数组(记录乘法懒标记)、多写个函数(区间乘),还有要把懒标记下放函数做些修改。 变量定义: sum[]:线段树节点对应区间的元素总和; addv[]:线段树节点对应区间的所有元素待加的值(懒标记),初值全部设为0; mulv[]:线段树节 ...
分类:
其他好文 时间:
2017-05-25 00:16:19
阅读次数:
203
1.对于区间修改: 直接修改数组c[],即进行n次add,肯定会TLE; 于是在此引入一个新数组:addv[],addv[i]指的是以结点i为根的树的所有元素加上addv[i]。 设将区间[a,b]中每个数加上x, 则只需自b向左,将相应的addv[]加上x,再自a-1向左,将多修改的结点的addv ...
分类:
编程语言 时间:
2017-05-25 00:15:31
阅读次数:
271
变量定义: sum[]:线段树节点对应区间的元素总和; addv[]:线段树节点对应区间的所有元素的待追加值(懒标记),初值全部设为0。 过程说明: 建树(Build): 若当前节点仅包含原序列中的一个值,即L=R,则直接赋值为序列中该值,否则递归建立左右子树后,将左右子树保存的sum值相加,即得到 ...
分类:
其他好文 时间:
2017-05-25 00:11:19
阅读次数:
238
题目链接:hdu 5306 Gorgeous Sequence 题意: 给你一个序列,有三种操作。 0 x y t:将[x,y]的数取min(a[i],t) 1 x y:求[x,y]的最大值 2 x y:求[x,y]的区间和 题解: 吉老师的课件题:传送门 1 #include<bits/stdc+ ...
分类:
其他好文 时间:
2017-05-25 00:01:40
阅读次数:
367
http://acm.nyist.net/JudgeOnline/problem.php?pid=15 dp[i][j]表示从i到j至少须要加入多少个括号才干满足匹配条件. 初始化: if(i == j) dp[i][j] = 1; else dp[i][j] = INF; 状态转移: 当i < j ...
分类:
其他好文 时间:
2017-05-24 22:38:49
阅读次数:
193
题目链接: http://poj.org/problem?id=2104 解题思路: 由于查询的个数m非常大。朴素的求法无法在规定时间内求解。因此应该选用合理的方式维护数据来做到高效地查询。 假设x是第k个数,那么一定有 (1)在区间中不超过x的数不少于k个 (2)在区间中小于x的数有不到k个 因此 ...
分类:
其他好文 时间:
2017-05-24 20:15:15
阅读次数:
287
题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数) 输入 第一行两个数 ...
分类:
其他好文 时间:
2017-05-24 19:44:36
阅读次数:
190
这道题可以用哈希...感觉哈希真的是很万能的一种方法... 我们可以用线段树记录一下[l,r]这个区间的数的和,数的平方和,那么对于一个询问,我们算一下这个等差序列的和与平方和是否与这个区间的相等,如果相等我们就认为可以构成等差数列。 感觉这种哈希的思想很巧妙,这种思想还是要多尝试,多应用 ...
分类:
其他好文 时间:
2017-05-24 18:32:57
阅读次数:
197
运算符是编程中用得最多的,其包含一元,二元和三元 三种运算符。swift也和其他编程语言一样基本就那些,以下总结一下,也有它特有的运算符。比方区间运算符 1、一元运算符 = 赋值运算符,用得最多的啦,其不带不论什么返回值 + 加法(数字相加,也可用于字符拼接var ss = "a"+"b") - 减 ...
分类:
编程语言 时间:
2017-05-24 18:26:17
阅读次数:
143
题目描述 教主最近学会了一种神奇的魔法,能够使人长高。于是他准备演示给XMYZ信息组每个英雄看。于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1、2、……、N。 每个人的身高一开始都是不超过1000的正整数。教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加 ...
分类:
其他好文 时间:
2017-05-24 12:33:36
阅读次数:
139