1 /** 2 problem: http://www.fjutacm.com/Problem.jsp?pid=2492 3 Splay blog: https://tiger0132.blog.luogu.org/slay-notes 4 函数介绍: 5 内部函数: 6 root为指针, x为数值... ...
分类:
其他好文 时间:
2019-03-13 23:05:19
阅读次数:
246
本文主要简单写写自己学习FFT的经历以及一些自己的理解和想法。 FFT的介绍以及入门就不赘述了,网上有许多相关的资料,入门的话推荐这篇博客:FFT(最详细最通俗的入门手册) 为什么要学习FFT呢?因为FFT能将多项式乘法的时间复杂度由朴素的$O(n^2)$降到$O(nlogn)$,这相当于能将任意形 ...
分类:
其他好文 时间:
2019-03-13 20:13:29
阅读次数:
174
第一种:树上倍增 f[x,k]表示x的2^k辈祖先,即x向根结点走2^k步达到的结点。 初始条件:f[x][0]=fa[x] 递推式:f[x][k]=f[ f[x][k-1] ][k-1] 一次bfs预处理f数组(nlogn),然后每次询问都可以在(logn)时间内求出x,y的lca 求lca的步骤 ...
分类:
其他好文 时间:
2019-03-11 00:55:51
阅读次数:
169
题目描述 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 解法1 时间复杂度:O(nlogn) 思路:使用快速排序,将数组排序,然后找到第k个最大的元素。这里需要复习一下快速一下快速排序的实现方法。 int partiti ...
分类:
其他好文 时间:
2019-03-06 10:39:06
阅读次数:
137
「ZJOI2018」历史 前置知识 $\text{LCT}$ 维护子树信息,考虑辅助树上一个节点的子树信息只是其代表的这一段链的信息,设 $S(u)$ 为节点 $u$ 的子树信息,那么在辅助树上我们维护的是: $$ S(u)=S(lson)+S(rson)+val(u) $$ 考虑它们的实际意义 $ ...
分类:
其他好文 时间:
2019-03-04 20:53:59
阅读次数:
158
区间最大值,nlogn预处理,1查询,不能动态修改。 令 $f[i][j]$ 表示 $[i,i+2^j-1]$ 的最大值。 显然, $f[i][0]=a[i]$ 。 根据定义式,写出状态转移方程: $f[i][j]=max(f[i][j-1],f[i+2^{j-1}][j-1])$ 。 我们可以这么 ...
分类:
其他好文 时间:
2019-03-04 20:46:39
阅读次数:
175
第一问就是求最长不上升子序列的长度,要写O(nlogn)的算法。。。。 对于这种nlogn的算法,只能求出长度,不能求出具体的序列。这种算法实现过程如下: 我们定义len为到目前为止最长不上升子序列的长度,d[l]表示此长度为l的不上升子序列的末尾数据中最下的那个,a[i]为输入的第i个结果。先使d ...
分类:
其他好文 时间:
2019-03-03 12:20:35
阅读次数:
179
简介 对于一颗静态树,O(nlogn)时间内处理子树的统计问题。是一种优雅的暴力。 算法思想 很显然,朴素做法下,对于每颗子树对其进行统计的时间复杂度是平方级别的。考虑对树进行一个重链剖分。虽然都基于重链剖分,但不同于树剖,我们维护的不是树链。 对于每个节点,我们先处理其轻儿子所在子树,轻子树在处理 ...
分类:
其他好文 时间:
2019-03-03 09:19:21
阅读次数:
214
题目地址 "题目链接" 题解 注,下方$(i,j)$均指$gcd(i,j)$,以及证明过程有一定的跳步,请确保自己会莫比乌斯反演的基本套路。 介绍本题的$O(n)$和$O(n\sqrt{n})$做法,本题还有$O(nlogn)$做法,需要用到欧拉函数,或者是从质因子角度考虑也可以得到另外一个$O(n ...
分类:
其他好文 时间:
2019-03-02 18:49:42
阅读次数:
184
可并堆有一种黑科技是用线段树合并实现,还能可持久化,时间复杂度nlogn。 这里介绍左偏树。 d值表示走右边到叶子的距离。满足d[r] <= d[l] 写法上用rt维护根节点,类似线段树。 放一个模板。 namespace lt { int ls[N], rs[N], siz[N], d[N], r ...
分类:
其他好文 时间:
2019-02-22 10:20:50
阅读次数:
169