线段树
luckyone2014
想思路是苦涩艰辛的,但是打代码是愉快的。
展开
-
hdu 4893 Wow! Such Sequence! 线段树
一道区间线段树更新. 用了set 的二分. 找过一次最近斐波那契数. 就可以laz标记掉 下次不再更新. 否则会超时.原创 2014-07-29 18:48:02 · 990 阅读 · 1 评论 -
URAL1987. Nested Segments 线段树
题意:有n个段,编号1-n,每个段占据着a-b。 m个查询,查询c处所在的段中,长度最短的是几号段。如果没有段占据,输出-1。首先把所有数字存在数组里,去离散化。然后把id按段的长度从长到短更新到树中。然后就查询固定的点在树中的ID的就行了。原创 2015-03-14 21:30:29 · 889 阅读 · 0 评论 -
lightoj 1164 - Horrible Queries 线段树入门
题意:0的话增加区间值,1的话查询区间值的和。简单的线段树题。原创 2015-03-29 10:24:48 · 670 阅读 · 0 评论 -
zoj 3888 Twelves Monkeys 二分+线段树维护次小值
题意:有m个可以穿越回过去的机器,但是只能用一个,还有q个询问。输出,当在p点时, 1到p-1 这些点有多少点可以通过两种方式穿越回去。做法:首先要穿越,必须要机器的r 大于等于p。这个是二分排序后去找的。然后用线段树找出这些r大于等于p的机器的l的次小值。很明显 次小l 后的所有点都可以用 最小l的机器,和次小l的机器 穿越回那些点。所以 点的总数是 max(p-l,0)。数据有问题有m==0 的输入,所以多次SF了,所以加了 m==0的特判。也可以按n来建树就不存在这个问题了原创 2015-07-27 21:59:34 · 1162 阅读 · 0 评论 -
hdu 5316 Magician 线段树
题意:有n个数,两个操作,0操作,输出l到r ,所有奇偶交替 的子序列中,值的最大和。(自序列是可以不用连续的)。 1操作是把a位置的数改成b。做法:维护区间内的 jiou, 这个区间以奇数位开始,偶数位结束的 所有子序列中的最大和。ouji,jiji,ouou 三个数同理。原创 2015-07-28 18:44:56 · 1350 阅读 · 0 评论