码迷,mamicode.com
首页 >  
搜索关键字:区间查询    ( 609个结果
【BZOJ2434】【NOI2011】阿狸的打字机 AC自动机
这是一道神题。 首先我们需要建立AC自动机,然后再建个Fail树,之后发现     如果询问a串在b串中出现了几次,那么只需要看b串在AC自动机上所有的节点中有多少个节点,在a串的结束节点在Fail树上的子树中就可以了。 然后这样做就很可以了,但是仍然不能AC, 这时我们只需要按照Fail树的dfs序建立数据结构(我写了树状数组)进行区间查询就好了。 这时对于以上的b串,...
分类:其他好文   时间:2015-01-19 17:15:24    阅读次数:128
HDU 1754 I Hate It
线段树解决,类似的,数状数组也行。 点修改,区间查询 都是 logn 的复杂度。 没有使用自底向上的ZKW线段树写法,就普通的递归线段树。 #include #include #include #include #include #include #include #include #include #include #include #include #include #defi...
分类:其他好文   时间:2015-01-11 21:45:23    阅读次数:269
hiho一下 第二十周(线段树模板)
基本上敲的模板功能:区间更新,区间查询自己随意开发。。 1 #include "iostream" 2 using namespace std; 3 #define lson l,m,rt>1)) * p[rt];23 sum[rt> 1) * p[rt];24 p[...
分类:其他好文   时间:2014-12-30 01:40:57    阅读次数:179
HDU 5145 NPY and girls 莫队算法
对于这类区间查询的问题,如果可以用O(1)的复杂度推到一个曼哈顿距离为1的另外区间的话,就可以直接用莫队算法搞。从网上搜到的有两种搞法。第一种是先建立曼哈顿距离最小生成树,然后直接dfs遍历整棵树来求解的。还有一种是先分块,然后把查询按照块的编号为第一关键字,右边界为第二关键字排序,排序直接直接暴力...
分类:编程语言   时间:2014-12-14 14:33:46    阅读次数:194
树状数组单点更新和区间查询
这里是最基本的操作。单操作时间复杂度O(logN),空间复杂度O(N). 1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 int n,m; 8 int a[100002],tree[100002]; 9 10 vo...
分类:编程语言   时间:2014-12-05 00:31:33    阅读次数:218
CODEVS线段树小结
CODEVS1369 xth 砍树题目大意:区间查询和,单点修改区间中点。思路:比较简单的线段树,可是在double和float上栽了跟头,以后统一用double,输出printf里面用f,不要用llf(我zuo)。#include#includeusing namespace std;int tr...
分类:其他好文   时间:2014-11-14 01:27:06    阅读次数:315
BZOJ 3589 动态树 树链剖分+容斥定理
题目大意:给出一棵树,每一个节点有一个权值,一开始所有节点的权值都是0。有两种操作,0 x y代表以x为根节点的子树上所有点的权值增加y。1 k a1 b1 a2 b2 ……ak bk代表询问。一共有k条边( k 思路:子树修改,区间查询,很明显用树链剖分解决,树链剖分维护一个size域,那么x的子树的范围就是pos[x]到pos[x] + size[x] - 1这一段上,可以用线段树...
分类:其他好文   时间:2014-10-25 09:19:42    阅读次数:136
poj 2763 Housewife Wind(树链剖分)
题目链接:poj 2763 Housewife Wind 题目大意:给定一棵树,然后2种操作: 0 u:输出路径s到u的权值和,并且s变成u1 i w:节点i增加w 解题思路:树链剖分,然后用线段树维护,单点修改区间查询。 #include #include #include using namespace std; const int maxn = 100005; ...
分类:Windows程序   时间:2014-10-17 10:19:39    阅读次数:241
HDU 3333 Turing Tree(树状数组离线处理)
HDU 3333 Turing Tree 题目链接 题意:给定一个数组,每次询问一个区间,求出这个区间不同数字的和 思路:树状数组离线处理,把询问按右端点判序,然后用一个map记录下每个数字最右出现的位置,因为一个数字在最右边出现,左边那些数字等于没用了,利用树状数组进行单点修改区间查询即可 代码: #include #include #include #inc...
分类:编程语言   时间:2014-10-16 11:18:12    阅读次数:220
BZOJ 3211 花神游历各国 树状数组+并查集
题目大意:给定一个序列,提供下列操作: 1.将[l.r]区间内每个数a[i]变为sqrt(a[i]) 2.查询[l,r]区间的和 根号是不支持区间修改的,于是我们选择单点修改区间查询的树状数组,但是这样是O(n^2)的,怎么办? 我们发现一个数x最多开loglogx次根号就会变为1 也就是一个int范围内的数只要开5次根号就会变为1 于是修改的总时间复杂度为O(nloglogn) 但是单...
分类:编程语言   时间:2014-10-10 16:03:44    阅读次数:217
609条   上一页 1 ... 55 56 57 58 59 ... 61 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!