摘要:
迟到的线性筛合集。 1.线性筛质数。 这个不讲了大家都会。不过他是下面的基础。注意每个数都是被最小质因子筛去的。 2.线性筛逆元。 这个有两种做法。第一种是质数直接用费马小定理,然后根据逆元是完全积性函数直接乘起来。 第二种直接线性递推。设$p = ki + b$,则有$ki + b \equiv 阅读全文
摘要:
BSGS,全称$Baby Step Giant Step$,是用于求解离散对数的一种算法。 就是用来求$A^x \equiv B (mod\ p)$ 的x这么一种算法…… 理论知识是:在[0,p)之内是一定有解的,因为指数模的周期性。即$A^x$对p的模随x变化有周期性,最大周期不超过p。首先,余数 阅读全文
摘要:
多项式的一堆乱七八糟的操作学了一部分了……(多点求值和快速插值还没有) 打算写下来整理一下。不过因为还有一些没学的以及没完全理解的……只好先持续更新了。 不扯淡了,直接开始。 1.NTT FFT咱就不说了,有兴趣可以看 "兔哥博客" . NTT和FFT很相似。但是因为FFT涉及到复数运算所以会有一些 阅读全文
摘要:
"传送门" 今天终于找到了一种比较方便好懂的用LCT维护生成树的办法。 以前用$mrclr$的方法……不是很理解,然后我写在这道题的时候还错了…… 首先先看一下这道题。这很明显就是让我们动态的维护一个最小生成树。不过因为删边的过程很难维护,所以我们改成先把边存起来,之后倒序回加。 一开始我们先用LC 阅读全文
摘要:
"传送门" 突然发现自己不大会维护位置这种题……学习了一下。 具体的操作还是使用$fhq treap$实现。什么split,merge都一样。问题是如何求位置。 首先我们在读入的时候,保存每个节点的权值和下标,并且按照权值进行排序,同时把它插入到一棵$fhq treap$中。 之后我们怎么查找一个节 阅读全文
摘要:
"传送门" 我还是没有逃过在这道题上debug好久的命运…… 我是使用$fhq treap$来做的这道题。写的时候写的挺爽的……调的时候真难受。 首先我们先来说说咋做吧。前5个操作对于$fhq treap$来说不在话下,只要多打两个标记就可以了。但是如何求最大子段和? 我们一般只会想到一种$O(n) 阅读全文
摘要:
$fhq treap$是个好东西啊!无旋转$treap$果然是好写,而且还是比较好理解的。 这种数据结构是由神犇fhq发明的。$Think\ functional!$ fhq神犇说,函数式编程的一大特点就是,不修改,只定义。普通的平衡树,无论是treap还是splay,都需要进行旋转来维护树的平衡性 阅读全文
摘要:
"传送门" 一道非常好的LCT/树剖题。但是像我这样的菜鸡想不到什么有效做法…… 首先我们可以很容易发现,一次如果要在链上连续修改那么肯定是从底向上的一端连续区间。如果我们把每个节点的输入值作为其权值,那么会被连续更改的一定是一端连续的为1或者为2的区间。 那么我们就可以通过维护这个区间来解决这道题 阅读全文
摘要:
"传送门" 首先吐槽一下……这题还吓唬你。都说了图中没有同色环,还说什么“所有可能从u到v的简单路径”,就一条…… 很显然就是每一种颜色维护一个LCT。因为颜色很少所以多开几棵就行。 有一些要注意的: 1.在修改的时候,首先我们得先找到连接这两个点的边原来是什么颜色的。这个必须是直接相连,因为有可能 阅读全文
摘要:
"传送门" 这题数据范围贼小……听说可以用各种乱七八糟的暴力随便过去。 其实这题就是找最长公共子串。但是我一直不知道怎么处理加数的情况……今天豁然开朗,直接对每个串做一次差分就好了。 之后就是我们正常的匹配,每次用子树内的值更新节点的值,最后的时候答案取所有节点最小匹配值的最大值+1. 阅读全文