摘要:
SA 后缀排序的中心思想是倍增,为了优化常数会使用一些比较特别的技巧。写法上主要分为两个部分,即预处理部分和倍增部分。首先定义几个数组,$sa_i$ 是排名为 $i$ 的数组的位置,$rk_i$ 是后缀 $i$ 的排名,$pl_i$ 是第一关键字 $i$ 的位置,$id$ 是按第二关键字排序后的数组 阅读全文
posted @ 2022-12-01 11:16
FeynZc
阅读(143)
评论(0)
推荐(0)
摘要:
AC 自动机是更高维的 kmp。构造方法感觉更像是运用了 dp 的思想,先对所有模式串建立一棵 Trie 树,然后考虑某个节点 $x$,有个 $w$ 的后缀,考虑如何去求它的 fail 值。于是就有了 AC 自动机的核心代码: int x=q.front(),ff=t[x].fail;q.pop() 阅读全文
posted @ 2022-12-01 11:12
FeynZc
阅读(346)
评论(0)
推荐(0)
摘要:
模拟赛中遇到了,被迫花了一天来学习。 轮廓线 DP 本质上是逐格转移的状压 DP,有特别经典的图可以说明: 思想上非常好理解,就是把分界处的状态压缩起来。主要是实现上有许多技巧需要说一下。第一个是状态的表示方法,在大多数情况只需要用 0/1 来代表这个位置是否存在插头即可,一般会以二进制或者四进制的 阅读全文
posted @ 2022-12-01 11:11
FeynZc
阅读(1340)
评论(0)
推荐(2)
摘要:
更应该说是一种思想吧。 我们希望知道恰好选择 $k$ 个物品时的答案,但世界上哪来的那么多恰好呢。令 $f_x$ 是恰好选择 $k$ 个物品时的答案,那么点集 $(x,f_x)$ 常会形成一个凸包,于是要知道特定 $x$ 的答案,就只需要二分出这个点的斜率,然后用截距加上横坐标乘斜率即可,这个过程就 阅读全文
posted @ 2022-12-01 11:11
FeynZc
阅读(55)
评论(0)
推荐(0)
摘要:
一篇比较初步的方法总结。 矩阵快速幂优化递推最经典的应用是快速求斐波那契数列的某一项,由于过于简单在这里没有什么必要提。由此引申出一类和上面一样单纯地优化递推过程的题目。经典题目如 跳房子link,用 $f_x$ 代表跳到 $x$ 的方案数,用 $F_x$ 表示 $f$ 的前缀和,那么根据定义有 $ 阅读全文
posted @ 2022-12-01 11:10
FeynZc
阅读(112)
评论(0)
推荐(0)
摘要:
初学笔记,目前水平仅限于板子。 李超线段树可以维护很多直线(或者线段),并可以查询某个点上最高点或者最低点。思想是考虑当前线段可能会更新哪些区间,对于一个区间而言,有一个之前的最优线段和当前线段,如果当前线段更优则交换二者位置。然后用得到的次优线段去更新比最优线段优的那半个数轴,递归处理即可,复杂度 阅读全文
posted @ 2022-12-01 11:09
FeynZc
阅读(60)
评论(0)
推荐(0)
摘要:
又叫 SOSdp。一般而言可以使用高维前缀和来统计形如: $s_x=\sum\limits_{y&x=y}a_y$ 的问题。代码上的形式如下: for(int i=0;i<20;++i) for(int j=0;j<n;++i) if((1<<i)&j) S[j]+=(S[j^(1<<i)]); C 阅读全文
posted @ 2022-12-01 11:09
FeynZc
阅读(39)
评论(0)
推荐(0)
摘要:
好久没碰数论了,感觉自己的基础挂得一塌糊涂,复习一下这玩意吧。 希望求得 $ax+by=c$,先同时除以 gcd 化成 $ax+by=1$ 的形式。然后呢用欧几里得的思想,假设我们已经求得了 $(b,a%b)$ 的答案,即已知:$x_0b+y_0a%b=1$,也就是说: $$ x_0b+y_0(a- 阅读全文
posted @ 2022-12-01 11:08
FeynZc
阅读(30)
评论(0)
推荐(0)
摘要:
主要探讨切比雪夫距离和曼哈顿距离的关系。最基本的定义:有两个点记作 $(x_1,y_1),(x_2,y_2)$,两个点的曼哈顿距离是 $|x_1-x_2|+|y_1-y_2|$,切比雪夫距离是 $\max(|x_1-x_2|,|y_1-y_2|)$。二者有密切联系,有图: 这张图说得非常精辟。蓝点对 阅读全文
posted @ 2022-12-01 11:08
FeynZc
阅读(93)
评论(0)
推荐(0)
摘要:
有标号无根树和 prufer 序列形成双射的关系。所以有一些性质。 其构造方式是拿一棵树出来,它有许多叶子。找出这些叶子中编号最小id,记录下它的父亲,丢掉。重复这一过程,会得到一个长度为 $m-2$ 的序列,即 prufer 序列。用堆可以做到单 log,当然也有线性做法(如果它丧心病狂想卡的话) 阅读全文
posted @ 2022-12-01 11:04
FeynZc
阅读(53)
评论(0)
推荐(0)
摘要:
两个知识点。 首先是最小树形图,意思是有一张带权有向图,钦定一个点,希望保留一些边使得这个点可以到达所有点,最小化边权和。思路上就是说贪心地选择每个点权最小的入边并加入集合中,这样形成的图兴许是最优的(和某B开头的最小生成树算法异曲同工)。但是有可能会出现环,此时就需要缩点,然后一直做下去即可。就这 阅读全文
posted @ 2022-12-01 11:02
FeynZc
阅读(137)
评论(0)
推荐(0)

浙公网安备 33010602011771号