摘要: 当想让学妹看博客时,怕旧的写的太烂被嫌弃,又怕新的看不懂……哎 一、定义: 单词的有向无环图 二、作用 从原点出发形成的所有路径即为单词的所有子串,并且通过维护endpos和endpos类,得知每个串出现的次数和出现的位置 三、构建后缀自动机 一些性质: endpos :数集,一些子串他们出现的位置 阅读全文
posted @ 2021-03-09 17:57 小又又yyyy 阅读(306) 评论(0) 推荐(1) 编辑
摘要: 参照博客 后缀数组 定义: 后缀就是从字符串的某个位置i到字符串末尾的子串,我们定义以s的第i个字符为第一个元素的后缀为$suff(i)$ 辅助数组: \(sa_i\):表示排名为$i$的后缀的起始位置的下标 \(rk_i\):表示起始位置的下标为$i$的后缀的排名 \(x_i\):表示起始位置的下 阅读全文
posted @ 2021-02-15 15:56 小又又yyyy 阅读(217) 评论(1) 推荐(3) 编辑
摘要: 自己也看了几篇博客,但是对我这种不擅长推导小白来说还是有一点困难,所以自己也写一篇博客也为像我一样的小白提供思路。以下内容包含各种LaTeX渲染,如果哪里有错误欢迎大家评论留言,或者添加本人qq:1403482164(无事勿扰) 一、FFT的应用场景 \(A(x) \text{=} a_0 \tex 阅读全文
posted @ 2021-01-30 18:45 小又又yyyy 阅读(2221) 评论(0) 推荐(3) 编辑
摘要: 联赛 基础算法 贪心,枚举,分治,倍增,构造,高精,模拟,分数规划,二分 图论 图 最短路(dijkstra、spfa、floyd),差分约束 最小生成树(kruskal、prim) 拓扑排序 二分图染色,二分图匹配 tarjan 树 树上倍增(LCA) 树的直径,树的重心 dfs序 树链剖分 数论 阅读全文
posted @ 2020-12-13 15:03 小又又yyyy 阅读(117) 评论(0) 推荐(2) 编辑
摘要: 1. 二分 小数 double l = 0,r = 100000,eps = 1e-4; while (r-l >= eps){ double mid=(l+r)/2; if (check(mid)) l=mid; else r=mid; } 整数 int l = 1,r = n,mid = (l+ 阅读全文
posted @ 2023-11-04 19:39 小又又yyyy 阅读(7) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <algorithm> #include <cstdio> #include <queue> #include <cstring> #include <cstdlib> #include <vector> #include <cmath> # 阅读全文
posted @ 2023-03-23 12:50 小又又yyyy 阅读(12) 评论(0) 推荐(0) 编辑
摘要: dfs序 void dfs(int x,int fa){ in[x] = ++cnt; for (int i = head[x];i;i = ed[i].nxt){ int to = ed[i].to; if (to == fa) continue; dfs(to,x); } out[x] = cn 阅读全文
posted @ 2023-02-26 14:39 小又又yyyy 阅读(15) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> #include <algorithm> #include <cstdio> #include <queue> #include <cstring> #include <cstdlib> #define O(x) cout<<#x<<" "<<x<<endl; 阅读全文
posted @ 2023-02-23 16:08 小又又yyyy 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1. 小G有一个大树(求树的重心) 删除该点后最大连通块的节点数最小 设f[x]表示以x为根的子树大小,那么删除x之后的各子树大小为f[to]和n-f[x] 求max(max(f[to]),n-f[x])的最小值以及最小值所对的x ###2.没有上司的舞会 儿子和父亲不能同时选择 设dp[x][0/ 阅读全文
posted @ 2023-01-29 13:41 小又又yyyy 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 记忆化搜索版,比较有套路 就根据杠杆数这道题来回忆一下 题目大致意思:选定大数中的某个数作为支点,使左右两边的力矩和相等,求区间内能满足条件的数的个数 首先一个大前提:对于一个满足条件的数来说,他的支点确定 如何证明:以将支点向左移动为例,支点左侧的力矩和因为支点向左移动,导致整体的力矩减少,并且数 阅读全文
posted @ 2022-09-15 16:27 小又又yyyy 阅读(47) 评论(1) 推荐(0) 编辑
摘要: 时隔一年,第一次学习新的算法 原理和AC自动机差不多 基本思想: 两棵树分别代表奇偶 在一个回文串两边同时填上相同字符可以得到另一个回文串,以此构建两棵树 树上维护信息: 节点表示的回文串为当前位置的最长回文串 节点上维护当前位置最长回文串的长度,fail指针(当前回文串的最长回文后缀) 如何维护: 阅读全文
posted @ 2022-09-06 18:47 小又又yyyy 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 回顾才发现扫描线还没有写过 解决问题:矩形的面积并,周长并问题 思想:利用分割法求矩形的面积 做法: 规定:从下往上扫 首先对纵坐标进行排序 问题:范围很大 离散化(注意求面积的时候不能用离散化后的坐标) 整体过程:遇下边加边,遇上边减边,切割出的矩形面积就是当前线段长度$\times$两次修改间的 阅读全文
posted @ 2022-08-26 11:20 小又又yyyy 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 突然忘了二维前缀和怎么写了 dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+map[i][j]; dp[x2][y2]+dp[x1-1][y1-1]-dp[x1-1][y2]-dp[x2][y1-1] 一、高斯消元 图上高斯消元,树上可以用树形dp替代 voi 阅读全文
posted @ 2021-07-19 18:58 小又又yyyy 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 一、莫队 普通莫队 bool cmp(node x,node y){ return (id[x.l] != id[y.l]) ? id[x.l] < id[y.l] : x.r < y.r; } sort(arr+1,arr+n+1,cmp); for (int i = 1,l = 1,r = 0; 阅读全文
posted @ 2021-07-19 16:49 小又又yyyy 阅读(36) 评论(0) 推荐(0) 编辑