这就是一个区间求和问题,可以用树状数组来做:
在此之前,需要了解一下按位与运算符——&;计算的规则是,仅当两个数都为真,则结果为真。
例如 90&45==8——————因为 在二进制中 0101 1010 (90) &
0010 1101(45)== 0000 1000 (8)
附 1: 负数在计算机中的存储方式:以补码存放,即对负...
分类:
编程语言 时间:
2015-08-12 09:00:35
阅读次数:
137
//===========================================
//segment tree
//final version
//by kevin_samuel(fenice)苏州大学孙俊彦
#include
#include
#include
using namespace std;
#define MAXN 100
#define INF 0x3ffff...
分类:
其他好文 时间:
2015-08-10 20:10:50
阅读次数:
92
对于线段树的讲解此篇不再赘述,下面列出线段树应用中最常用的几种操作的代码。(具体题目未贴出,仅供有一定基础者参考代码风格)
另外,注意多组输入要写scanf("%d%d",&n,&m)!=EOF,线段树的题肯定要用c语言的输入输出,要使用字符数组,不用字符串,输入字符的时候要加getchar()吞噬空行..
(1)单点增减,区间求和:
#include
#include
#include
#...
分类:
其他好文 时间:
2015-08-09 20:51:55
阅读次数:
158
【codevs2216】行星序列2014年2月22日3501题目描述Description“神州“载人飞船的发射成功让小可可非常激动,他立志长大后要成为一名宇航员假期一始,他就报名参加了“小小宇航员夏令营”,在这里小可可不仅学到了丰富的宇航知识,还参与解决了一些模拟飞行中发现的问题,今天指导老师交给...
分类:
其他好文 时间:
2015-08-05 00:43:25
阅读次数:
124
之前做的那道是区间求和的,这道题是求区间最大值和最小值之差的,感觉这道题更简单。只需在插入时把每个区间的最大值最小值求出来保存在根节点上就可以啦~\(^o^)/Balanced LineupTime Limit:5000MSMemory Limit:65536KTotal Submissions:3...
分类:
其他好文 时间:
2015-08-04 12:57:08
阅读次数:
103
【codevs1690】开关灯2014年2月15日4930题目描述Description YYX家门前的街上有N(2 OOXX -> OXOO -> 询问1~3 -> OOXX -> 询问1~4代码 1 #include 2 #include 3 #include 4 #includ...
分类:
其他好文 时间:
2015-08-04 02:01:09
阅读次数:
149
Can you answer these queries?
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)
Total Submission(s): 10057 Accepted Submission(s): 2305
Problem Descriptio...
分类:
其他好文 时间:
2015-07-30 16:59:26
阅读次数:
165
最简单的树剖点更新+线段树区间求和 1 #include 2 #include 3 #include 4 using namespace std; 5 #define lson l,m,rtmaxsize) 39 maxsize = siz[e[i].v],s...
分类:
其他好文 时间:
2015-07-28 20:57:55
阅读次数:
85
对线段树进行三种操作:
区间求和。
区间求最大值。
将节点值更新为当前值与给定值中的最小值。
怎么做?代码中有详细注解,看看就懂了。
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2015-07-27 18:50:17
阅读次数:
122
题意:区间最大长度为1000000, 三种操作: 区间求和; 区间求最大值; 将节点值更新为当前值与给定值中的最小值(有趣的更新);思路: 暴力线段树。关键在于处理标记,需要维护最大标记,标记覆盖范围,所在区间; 覆盖区域标记起到很关键的作用;#include#i...
分类:
其他好文 时间:
2015-07-26 20:43:26
阅读次数:
179