人生第一道树套树的题,看着bin巨的代码才学会,太累了,文字明天补 #include<bits/stdc++.h> using namespace std; const int maxn=60010; int n,q,m,tot; int a[maxn]; int t[maxn]; int T[ma ...
分类:
编程语言 时间:
2020-05-17 01:13:19
阅读次数:
56
LINK: "简单树" 以后我再不认真读题 我TM活该退役 又因为没认真读题多调了20min.时间珍贵啊。 题目最后让ans%n 我没取模 自闭ing. 还是挺有意思的题目。求x到区间[L,R]的所有点的距离。 这个还是一个非常经典的问题。需要把答案的式子列出来。 $\sum_{i=L}^R(dis ...
分类:
其他好文 时间:
2020-04-30 21:00:27
阅读次数:
67
干货! 概述 是借助可持久化线段树实现的,因为这个数据结构进行版本复制时只需新开 $\log n$ 个结点,单点查询也只需要花费 $\log n$ 的时间,非常高效。其主要思想就是先建一个线段树,动态开点,在叶子结点上维护原数组的信息。当修改某个位置的值时,只需要在这个位置所对应的叶结点的路径复制一 ...
分类:
编程语言 时间:
2020-03-21 14:28:20
阅读次数:
61
https://vjudge.net/problem/SPOJ-DQUERY 求区间内不重复的数的个数。 扫描数列建立可持久化线段树,第i个数若第一次出现,则在线段树中的位置i加1;若不是第一次出现,将上次出现的位置减1,在本次位置加1。 对于每个询问的区间 [L,R],在第R个版本上的线段树只有前 ...
分类:
其他好文 时间:
2020-03-01 19:37:05
阅读次数:
61
题意: 对于一个给定长度为N的字符串,求它的第K小子串是什么。N<=5000000,K<=1000000000。 题解: 对于本题,首先我们要做的事情是先建立后缀自动机。 如果T=0,那么每一个位置的出现次数直接设为1,T=1否则就是正常的right集合大小。 那么我们可以再记一个sum[i],表示 ...
分类:
其他好文 时间:
2020-02-13 13:13:09
阅读次数:
67
【模板】可持久化线段树 1(主席树)(luogu) (本人的模板) Description 题目背景 这是个非常经典的主席树入门题——静态区间第 kk 小数据已经过加强,请使用主席树。同时请注意常数优化 题目描述 如题,给定 nn 个整数构成的序列,将对于指定的闭区间查询其区间内的第 kk 小值。 ...
分类:
其他好文 时间:
2020-02-06 12:50:58
阅读次数:
61
网络流 最大流和最小费用最大流原理 上下界网络流 模拟费用流 网络流建模总结 带花树 树 树上倍增 树链剖分 点分治 基环树 DP 概率期望dp 单调队列dp 状压dp 斜率优化dp 计算几何 模板 半平面交 好题 数据结构 线段树高级应用 可持久化线段树 Treap Splay 可持久化平衡树 树 ...
分类:
编程语言 时间:
2020-02-05 09:27:29
阅读次数:
86
主席树,即可持久化线段树,它是在权值线段树的基础上,记录了每个历史版本,从而可以方便快速的处理一些区间问题,最经典的应用有查询区间第 k 小。 当然,如果我们直接每次修改开一棵线段树,空间复杂度太大,肯定不行。但我们可以发现每次修改都只会改变一个结点的值,对于线段树来说,也就是只会有左儿子或者右儿子 ...
分类:
其他好文 时间:
2020-02-03 20:49:01
阅读次数:
70
区间k小数是主席树的模板题目,如果区间不包含,用莫队+权值线段树也能解 主席树是可持久化线段树,所为可持久化,就是每次只新增不一样的节点,而保留前面的版本,这样可以做到查询。 如果询问时1-r,那么直接主席树,询问的是l-r,就用到前缀和思想,具体看代码注释 #include<iostream> # ...
主席树的综合运用题. 前置芝士 1. "可持久化线段树" :~~其实就是主席树了~~. 2. "LCA" :最近公共祖先,本题需要在$\log_2N$及以内的时间复杂度内解决这个问题. 具体做法 主席树维护每个点到根节点这一条链上不同树出现的次数,然后发现这个东西是可以相减的,于是这条链上每个数出现 ...
分类:
其他好文 时间:
2020-01-31 21:02:56
阅读次数:
94