摘要: 题目大意: 求字符串A在字符串B中出现的次数。 思路: KMP板题,用Hash也可水过~要学习KMP可参考http://blog.csdn.net/u011564456/article/details/20862555 代码: KMP: Hash: 阅读全文
posted @ 2016-08-03 18:57 HHshy 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有5种运算维护集合S(S初始为空)并最终输出S。 5种运算如下: U T S∪T I T S∩T D T S-T C T T-S S T S⊕T 基本集合运算如下: A∪B {x : xÎA or xÎB} A∩B {x : xÎA and xÎB} A-B {x : xÎA and x 阅读全文
posted @ 2016-08-03 18:29 HHshy 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有一个01序列,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0;1 a b 把[a, b]区间内的所有数全变成1;2 a b 把[a,b]区间内的所有数全部取反,也就是说把所有的0变成1,把所有的1变成0;3 a b 询问[a, b]区间内总 阅读全文
posted @ 2016-08-03 18:25 HHshy 阅读(436) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给你一棵树,要从编号为a[1]的节点走到编号为a[2]的节点再走到编号为a[3]的节点……一直走到编号为a[n]的节点。问每个节点最少访问多少次。 思路: 将其进行轻重链剖分,则从a[i]走到a[i+1]实际上就是在几段重链的节点上+1,于是就用线段树来维护一下即可。 代码: 阅读全文
posted @ 2016-08-03 18:21 HHshy 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。有一些操作:1.把结点u的权值改为t;2.询问从点u到点v的路径上的节点的最大权值 3.询问从点u到点v的路径上的节点的权值和。 思路: 进行轻重树链剖分,再根据每个节点的dfs序建立线段树,维护其最大值以及和,询问时用树剖后 阅读全文
posted @ 2016-08-03 18:17 HHshy 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有长为N的数列,有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数全部加一个值; (3)询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模P的值。 思路: 用线段树来维护当前的值和要加以及乘的值,由于加与乘是有序的,所以要在做子树之前将标记下传( 阅读全文
posted @ 2016-08-03 18:11 HHshy 阅读(856) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 一个数列,有两个操作:1.修改操作,将一段区间内的数加上c;2.查询操作,查询一段区间内的数的和。 思路: 线段树裸题,区间修改、区间查询,维护和以及加上的数,由于无序,不需要向下推标记,只需在子树更新完之后更新根节点即可。 代码: 阅读全文
posted @ 2016-08-03 18:04 HHshy 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 维护一个数列,有两种操作:1、 查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、插入操作:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,再将所得答插入到数列的末尾。初始时数列是 阅读全文
posted @ 2016-08-03 17:14 HHshy 阅读(187) 评论(0) 推荐(0) 编辑