应该就是算 线段树的 单点更新吧.但一开始给了我一个错觉 是二维线段树 我也是醉了tree[root].x// x = L || R表示root这个结点表示的是L - > R这个区间tree[root].leftLen//表示 root这个结点所在的区间现在还存在的最长连续格子数更让人郁闷的是 我用...
分类:
其他好文 时间:
2014-11-02 20:49:31
阅读次数:
194
题意:初始序列 1, 2, ..., n,m次操作(1
D l r,将区间[l, r]中的所有数复制一次;
Q l r,输出区间[l, r]中同一数字个数的最大值。
(0
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4973
——>>因为区间内数字是依次递增的,所以可以以数字为叶建线段树去维护区间同一数字个数最大值。。
原查询区...
分类:
其他好文 时间:
2014-10-29 07:06:29
阅读次数:
238
链接:
huangjing
题目:中文题目
思路:
这个题目如果去掉那个距离大于d的条件,那么必然是一个普通的LIS,但是加上那个条件后就变得复杂了。用dp的解法没有看懂,我用的线段树的解法。。。就是采用延迟更新的做法,用为距离要大于d啊,所以我们在循环到第i的时候,就对(i-d-1)这个点进行更新,因为如果在(i-d-1)这个点更新了,会对后面的造成影响,然后线段树的tree【】数...
分类:
其他好文 时间:
2014-10-24 23:38:55
阅读次数:
338
题意 :每层都有2个门,每个门后面都能通向下一层的两个门,有两个操作 ,第一个 问 从a层到 b层的方法数,第二个 修改 其中某门通向某门的状态。线段树单点更新,就是 前面那个连通性矩阵有点厉害,看了题解才知道。#include #include #include #include #include...
分类:
其他好文 时间:
2014-10-21 17:13:52
阅读次数:
238
题目链接:
huangjing
题目意思:
给出n头牛的活动区间,比如区间[SI,sj]和[EI,EJ],如果前面一个区间完全包含另外一个区间那么说明前一头牛比后一头牛强壮。
思路:根据区间的右区间数来建树,然后用sum[]来维护牛在这些右区间的头数。首先要根据牛的区间顺序进行排序,当然从左像右排序,那么后面进行查询比自己强的牛的时候那么就只用找右区间比自己大的就可以了。那么如何更新呢...
分类:
其他好文 时间:
2014-10-19 23:18:34
阅读次数:
250
这道题是线段树入门题,其问题是单点更新,线段查询。
这里本来还打算用lazy标记做一下,但是不行,必须更新到单点
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-10-19 11:43:00
阅读次数:
190
题目链接:
huangjing
题意:给了三种操作
1:add(x,y)将这个点加入二维坐标系
2:remove(x,y)将这个点从二维坐标系移除。
3:find(x,y)就是找到在(x,y)右上方的第一个点。
思路:我们可以建立n个set以x为横坐标,那么我们这个题就转化为找一个最小的x是否存在满足条件,那么x一旦被找到,那么纵坐标就自然而然的找到了,当然更新操作就是对maxy的...
分类:
其他好文 时间:
2014-10-17 09:06:24
阅读次数:
193
题目链接:Codeforces 85D - Sum of Medians
题目大意:N个操作,add x:向集合中添加x;del x:删除集合中的x;sum:将集合排序后,将集合中所有下标i % 5 = 3的元素累加求和。
解题思路:线段树单点更新,每个点维护5个值,分别表示从该段区间中i % 5 = t的和。然后两端区间合并时只需要根据左孩子中元素的个数合并。所以有一个c表示区间上元...
分类:
其他好文 时间:
2014-10-11 19:19:36
阅读次数:
245
题目链接:
huangjing
思路:
因为给出了n条插入,所以如果正推的话,那么后面插的会影响到最后所在的位置,所以考虑逆序解决,那么如果此人站在第i个人的位置,那么这个人前面必然有i个空位置没占,因为是从后向前考虑的,所以每次更新的时候就要考虑在前面存在i个空位的位置后插入这个人,那么最后得到的序列就是满足条件的。。
题目:
Language:
Defaul...
分类:
其他好文 时间:
2014-10-10 11:43:04
阅读次数:
238
一、单点更新
1.hdu1166 敌兵布阵:有N个兵营,每个兵营都给出了人数ai(下标从1开始),有四种命令,(1)”Addij",表示第i个营地增加j人。(2)“Sub i j”,表示第i个营地减少j人。(3)“Query ij",查询第i个营地到第j个营地的总人数。(4)”End“,表示命令结束。解题报告Here。
2.hdu1754 I Hate It:给...
分类:
其他好文 时间:
2014-10-05 11:16:58
阅读次数:
419