线段树
Last0rder
最后之作
展开
-
Codeforces Round #291 (Div. 2)D. R2D2 and Droid Army
D. R2D2 and Droid Army time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output An army of n droids is lined up in o原创 2015-02-16 14:28:00 · 970 阅读 · 0 评论 -
hdu4614 Vases and Flowers
Vases and Flowers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 2148 Accepted Submission(s): 836 Problem Description Alice is so原创 2015-01-25 23:57:40 · 845 阅读 · 0 评论 -
hdu 5306 Gorgeous Sequence
对线段树进行三种操作: 区间求和。 区间求最大值。 将节点值更新为当前值与给定值中的最小值。 怎么做?代码中有详细注解,看看就懂了。 #include #include #include #include #include #原创 2015-07-27 18:35:11 · 2266 阅读 · 0 评论 -
codeforces 558 E A Simple Task
题目大意就是给一个字符串,然后多个操作,每次操作可以把每一段区间的字符进行升序或者降序排序,问最终的字符串是怎样的。 做法的话就是用线段树维护区间和 一开始只考虑字符串中字符'a'的情况,假设操作区间[L,R]中有x个'a',那么一次操作后,这x个'a'要么去最左(升序),要么去最右(降序),我们可以建立一颗线段树来维护这样的操作,字符'a'出现的位置值为1,否则为0,那么q次原创 2015-07-17 17:45:08 · 1042 阅读 · 0 评论 -
hdu5381The sum of gcd
题意:给出一个序列,多次区间询问,算出下面式子的答案 f(l,r)=∑ri=l∑rj=igcd(ai,ai+1....aj) 做法:连续求gcd的和,看起来就是线段树,由于对于任意数,若再搞任意个其它的数跟它做gcd,最多只有log(n)个不同的gcd,所以对于任意区间最多只有log(n)个不同的gcd,这样就可以用线段树存下来了。 struct Tree { ll val;//区间原创 2015-08-17 14:44:56 · 1007 阅读 · 0 评论