![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构--线段树
妖怪吧
这个作者很懒,什么都没留下…
展开
-
线段树模板
定义 线段树是一种特殊的二叉树,每个节点代表原数组的一段区间,根节点代表整个区间,叶节点代表长度为1的区间。 一般应用: 利用线段树快速求区间的最值,求和等。 使用延迟标记可以很好地支持区间修改。 单次修改和查询的时间复杂度都是O(log n)。 一: 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某...原创 2018-02-11 10:49:44 · 127 阅读 · 0 评论 -
SPOJ 1043 GSS1 - Can you answer these queries I
题目描述 给出了序列A[1],A[2],…,A[N]。 (a[i]≤15007,1≤N≤50000)。查询定义如下: 查询(x,y)=max{a[i]+a[i+1]+…+a[j];x≤i≤j≤y}。 给定M个查询,程序必须输出这些查询的结果。 输入输出格式 输入格式: 输入文件的第一行包含整数N。 在第二行,N个数字跟随。 第三行包含整数M。 M行跟在后面,其中第1行包含两个数字xi...原创 2018-06-18 09:43:00 · 210 阅读 · 0 评论 -
BZOJ 2957: 楼房重建
Time Limit: 10 Sec Memory Limit: 256 MB Submit: 3287 Solved: 1549 [Submit][Status][Discuss] Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考...原创 2018-07-03 17:21:27 · 110 阅读 · 0 评论 -
SPOJ 2916 GSS5 - Can you answer these queries V
传送门 解题思路 和GSS1相似,但需要巨恶心的分类讨论,对于x1<=y1< x2< =y2 这种情况 , 最大值应该取[x1,y1]的右端最大+[y1+1,x2-1]的和+[x2,y2]的左端最大。对于x1< =x2< =y1<=y2,用四种情况,第一种是[x1,x2-1]的右端最大+[x2,y2]的左端最大,第二种是[x1,y1]的右端最大+[y1+...原创 2018-07-18 18:28:39 · 159 阅读 · 0 评论 -
1858: [Scoi2010]序列操作
1858: [Scoi2010]序列操作 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 3397 Solved: 1624 [Submit][Status][Discuss] Description lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b...原创 2018-07-19 18:32:27 · 158 阅读 · 0 评论 -
LUOGU P1083 借教室
传送门 解题思路 正解好像是什么前缀和+二分,没想到。。就写了个线段树骗分,结果擦着边过了??线段树中维护一个区间和 and 最小值即可。 代码 #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;cmath&gt; using namespac原创 2018-08-03 09:17:50 · 150 阅读 · 0 评论 -
LUOGU P1937 [USACO10MAR]仓配置Barn Allocation
传送门 解题思路 扫了一眼觉得是贪心+线段树,结果贪心的时候刚开始按区间长度排的序。。这还有82分,后来叉了自己,换成按右端点排序过了。 代码 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> ...原创 2018-08-20 21:29:14 · 107 阅读 · 0 评论