-------------数据结构----------
gigo_64
莫看,莫看,这不是真实的我(七海脸)
溜了溜了
展开
-
普通平衡树的各种写法(更新中)
受fsy启发,发现这道题真是个锻炼数据结构和STL的好东西。 解法1:权值线段树 离散化后(注意4操作不能离散化),操作如下: 插入,删除,查size,线段树上二分,查最大,查最小。 都是基本操作。 #include<bits/stdc++.h> using namespace std; #define in read() int in{ int cnt=0,f=1;ch...原创 2019-10-25 09:52:34 · 369 阅读 · 0 评论 -
蒟蒻分块
蒟蒻在刘巨佬的强烈安利下,终于学习了最弱版本的分块。 这个算法比我想的要暴力很多啊。 所谓分块,就是把一串要处理的数列分成一块一块的。 然后区间处理的时候,范围大于一个块的就区间修改整体修改,否则就暴力遍历。 也就是说每次修改的部分实际上是 左边-块-块-块……块-块-块-右边。左边右边暴力遍历。 分块是一个很宏远的算法,以至于它没有太多基本套路。 不过如何分块是我们要说一下的。这关乎...原创 2018-12-11 22:25:06 · 176 阅读 · 0 评论 -
【洛谷p2801】教主的魔法【分块模板】
给出一个数列,支持区间修改,区间查询大于等于key的值个数,分块模板加一个小二分。 详情见代码。A指查询(L到R大于x),M指修改(将L到R增加x) #include<bits/stdc++.h> #define in in() using namespace std; int in{ int cnt=0,f=1; char ch=0; while(!isdigit(ch))...原创 2018-12-11 22:38:45 · 215 阅读 · 0 评论 -
【TJOI2018】数学计算【线段树】
长点儿见识,,咕咕咕 一开始很蒙蔽啊这题怎么做啊高精吗卧槽我不会救命啊 然后再一想,我先把数存下来。 然后再一想,把这个数删了等于*x/x=1 然后再一想,我需要一个动态更新维护全局的数据结构。那是啥呢 那是线段树啊 所以如果存在就是这个数,不存在就是1,辣鸡单点修改,连单点查询都不用写直接查根。 3min写完感觉手速又提高了呢ouo #include<bits/stdc+...原创 2019-10-04 16:50:01 · 146 阅读 · 2 评论 -
【bzoj3682】phorni【后缀平衡树】
看,黑暗bzoj网站! FSY的代码真tm好读,比zxy的好看多了,赏心悦目的一匹。 支持前端添加字符,维护所有后缀的排名信息。 我们使用后缀平衡树。 如果直接二哈的话,复杂度 会死掉,所以使用nb的后缀平衡树。 后缀平衡树每个节点对应一个后缀。给每个节点一个我们定义的权值来比较相对大小。 这个自定义权值实现长得像线段树。 每个节点给一个左右权值。该点权值为左右权值的平均数。 左...原创 2019-10-06 09:15:25 · 182 阅读 · 2 评论 -
线段树合并
有时候不得不合并两个形态不一定完全相同(因为动态开点)的线段树,往往是权值线段树。我们可以直接merge起来。大体跟可并堆的或者非旋treap的节奏差不多。 如果某个子树不存在该节点直接返回,存在logn递归。 为什么动态开点呢。因为很显然,如果两个线段树结构相同,那复杂度还是O(n)。所以结构越混乱,复杂度越低。 事实上,复杂度均摊nlogn。 bzoj4756 奶牛qwq #in...原创 2019-10-09 19:06:18 · 98 阅读 · 0 评论 -
哈希表与BSGS与exBSGS
使用递归学习法。 哈希表是一个数据结构,在哈希的基础上用一个链表(我喜欢邻接表)把对某个数取模相同的东西放在一个起始节点下。 复杂度期望在1左右,或者很小的常数。 给a,b,质数p,求解 先讨论特殊情况。 如果a modp==0,无解。 如果b%p==1,那x=0就行了。 而大多数情况。 首先因为p是质数,那如果x是一个解,则x%p也是一个解。所以我们只需要管0<...原创 2019-10-10 14:38:27 · 212 阅读 · 0 评论 -
【GXOI\GZOI2019】旧词【差分】【树剖】
嗯,,这道题和上道题一样的 上道题是这道题的递归题。 如果明白上道题的处理方式,这道题就差不多了 。 唯一的难点在于k次方,如何维护? 如果我们仍然将1到某个点权值都+1,还要满足这对该点子树贡献是该点深度的k次方。 我们可以继续使用差分思想。将第i个点赋一个加权权值为其深度的k次方减去(该点深度-1)的k次方。 然后就可以继续快乐的维护了。 #include<bits/st...原创 2019-10-10 19:25:13 · 98 阅读 · 0 评论