模板
泠楠子
想写一点能让自己记住的东西
展开
-
模板 - treap平衡树
关于删除操作中左旋、右旋的问题。某个点旋一次就能降低一层,log次到达根节点,旋到根节点再删。旋的时候也要保证旋完以后保证这个val的大根堆性质,虽然旋完x这个点后x的val肯定比y的val要大,但是x这个点是要被删掉的点,所以暂时的不合法状态时没问题的,因为最后一定会变为合法状态。保证其它的点合法就行。总而言之,就是旋上去的点一定得是val值最大的。原创 2024-08-07 17:25:32 · 191 阅读 · 0 评论 -
模板 - 主席树
找第k小类似于二分思想,左半边如果数字个数原创 2024-08-06 17:25:28 · 254 阅读 · 0 评论 -
模板 - 可持久化trie
将当前版本与上一版本比较,除当前修改外,其余直接继承上一版本。原创 2024-07-30 16:01:33 · 218 阅读 · 0 评论 -
模板 - 区间乘&区间加
【代码】模板 - 区间乘&区间加。原创 2024-07-29 19:47:16 · 122 阅读 · 0 评论 -
模板 - st表
【代码】模板 - st表。原创 2024-07-24 21:48:42 · 119 阅读 · 0 评论 -
lca 模板
【代码】lca 模板。原创 2024-04-01 21:48:50 · 138 阅读 · 0 评论 -
数位dp 笔记
小技巧1:求区间[X, Y]可以转换为求F(Y) - F(X-1)F(X)表示0~X中满足条件的数字个数小技巧2:可以用树的形式来看遍历最高位,每一位分为两种情况:未达到上界和达到上界如果走到右边最底端需加1。原创 2024-03-04 19:53:09 · 963 阅读 · 0 评论 -
树形dp 笔记
给定一棵树,树中包含 n 个结点(编号1~n)和 n−1 条无向边,每条边都有一个权值。现在请你找到树中的一条最长路径。换句话说,要找到一条路径,使得使得路径两端的点的距离最远。注意:路径中可以只包含一个点。原创 2024-02-15 23:27:20 · 1047 阅读 · 0 评论 -
区间dp 笔记
区间dp一般是先枚举区间长度,再枚举左端点,再枚举分界点,时间复杂度为。原创 2024-02-10 23:29:55 · 1698 阅读 · 0 评论 -
AC自动机 模板
核心思路是kmp的拓展,只是i++、j++什么的转换成了树的形式,初始化用bfs,每一点的初始化都是借助于该层以前的层进行的。ne[t]是回溯一次,tr[ne[t]][i]直接记录好了它下一个点的位置,存在儿子就到儿子,没有儿子就是记录的回溯好的点。每个点的ne都被计算了。原创 2024-01-12 14:57:12 · 537 阅读 · 0 评论 -
状态机模型 笔记
给定一个长度为 N的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润,你最多可以完成 k 笔交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。一次买入卖出合为一笔交易。原创 2023-11-29 21:44:31 · 970 阅读 · 0 评论 -
最长上升子序列模型 笔记
【代码】最长上升子序列模型 笔记。原创 2023-11-15 19:26:49 · 220 阅读 · 0 评论 -
数字三角形模型 笔记
每一个状态可由四种状态转换来,分别为。f[k][i1][i2]来表示。第一条路走下,第二条路走下。第一条路走下,第二条路走右。第一条路走右,第二条路走下。第一条路走右,第二条路走右。原创 2023-11-13 21:43:47 · 248 阅读 · 0 评论 -
背包模型 笔记
【代码】背包笔记。原创 2023-11-02 21:04:54 · 172 阅读 · 0 评论 -
斐波那契前 n 项和 - 矩阵乘法快速幂
然后对这个式子进行快速幂,挺神奇的。原创 2023-10-08 19:34:48 · 98 阅读 · 0 评论 -
龟速乘 - a * b爆ll且模数很大时的计算方法
如果int128也会爆掉的话可以用这种方法。也是快速幂的思想,快速幂是乘,这个是加。原创 2023-10-07 20:04:52 · 171 阅读 · 2 评论 -
O(根号n/ln(根号n))时间复杂度内求n的所有因子
如果n范围小于1e8的话还可以 log时间复杂度求质因子 的算法将求因数优化到log级别。范围内的质数除n,求出n的分解质因数形式,然后爆搜求出n的所有因子,2e9范围内因子最多的数有1600个因子,爆搜的时间复杂度很小。)复杂度内求n的所有因子,在2e9数量级比O(个,所以是这个时间复杂度。n范围内的质数大约有。原创 2023-10-05 18:59:33 · 310 阅读 · 0 评论 -
拆分Nim游戏 - SG定理
【代码】拆分Nim游戏 - SG定理。原创 2023-09-30 19:42:28 · 229 阅读 · 0 评论 -
Nim - sg函数
0必胜,等于零必败。原创 2023-09-30 19:07:18 · 71 阅读 · 0 评论 -
Fake Maxpooling 二维滑动窗口
先对每一行求一遍滑动窗口,列数变为(列数-k+1)再对每一列求一遍滑动窗口,行数变为(行数-k+1)剩下的就是每一个窗口里的最大值啦。原创 2023-09-30 18:06:36 · 128 阅读 · 0 评论 -
单调队列 - 滑动窗口
O(1)求窗口中的最大值/最小值。原创 2023-09-30 15:23:42 · 71 阅读 · 0 评论 -
Nim游戏
设异或和为x,x的最高位为第k位,令第k位为1的a[i]变为a[i]^x,a[i]^x < a[i],这样就可以使异或和为0。如此往复最终先手可以走到0^0^...^0。原创 2023-09-29 15:45:34 · 200 阅读 · 0 评论 -
容斥原理 能被整除的数
所以可以枚举每一位选或不选来暴力算。原创 2023-09-29 14:21:56 · 88 阅读 · 0 评论 -
卡特兰数
给定 n个 0 和 n个 1,它们将按照某种顺序排成长度为 2n 的序列,求它们能排列成的所有序列中,能够满足任意前缀序列中 0 的个数都不少于 1 的个数的序列有多少个。对于每一个中途x>y的路径都可以转化为到(n-1,n+1)的路径。走到(n, n)的所有路径-中途x>y的所有路径。输出的答案对 109+7 取模。原创 2023-09-27 22:04:15 · 81 阅读 · 0 评论 -
组合数4 高精度计算组合数
一般来说需要高精乘和高精除,但化简为质因子形式后只用高精乘。原创 2023-09-26 22:04:03 · 236 阅读 · 0 评论 -
组合数3 - lucas a、b较大的组合数
【代码】组合数3 - lucas a、b较大的组合数。原创 2023-09-26 20:44:12 · 75 阅读 · 0 评论 -
组合数 2.1 2.2
O(nlogn)预处理, O(1)查询。O(n)预处理,O(1)查询。原创 2023-09-23 20:22:34 · 132 阅读 · 0 评论 -
组合数 1
n方预处理组合数,O(1)查询。原创 2023-09-23 19:51:59 · 83 阅读 · 0 评论 -
高斯消元解异或线性方程组
【代码】高斯消元解异或线性方程组。原创 2023-09-23 19:07:50 · 97 阅读 · 0 评论 -
高斯消元
【代码】高斯消元。原创 2023-09-23 17:16:42 · 73 阅读 · 0 评论 -
拓展中国剩余定理模板 - 线性同余方程组
【代码】中国剩余定理模板 - 线性同余方程组。原创 2023-09-22 16:41:19 · 62 阅读 · 0 评论 -
exgcd求逆元
【代码】exgcd求逆元。原创 2023-09-21 21:20:20 · 148 阅读 · 0 评论 -
三分 模板
求凹凸函数时用的,找最大/最小值。原创 2023-09-03 21:50:22 · 56 阅读 · 0 评论 -
双哈希模板
就是两个单独的哈希,双重保障。原创 2023-09-02 19:21:57 · 285 阅读 · 0 评论