摘要: 声明:本文部分内容经过 AI 润色。 你这是哪个SAM 后缀自动机,简称 SAM,是一种我认为非常复杂的自动机,但是它也有很多优秀的特点,所以能够处理很多问题,很多后缀数组问题也都能用后缀自动机完成。 整体结构 SAM 的内部包含两套边,理解这两套边是掌握 SAM 的关键。 第一套边:带字符的转移边 阅读全文
posted @ 2026-04-24 15:10 huhangqi 阅读(72) 评论(4) 推荐(2)
摘要: 由于 NOIP 被打飞,压线拿下 1=,只好来体验一下省选 看看我能翻多少名(准考证ZJ-88,虽然很吉利但是应该也是倒数了) 3.4 冬妮娅忽然跑到机房说自己放假在家太无聊了,也想来打比赛,这样加上学长我们学校就有六个人去了。 冬妮娅说自己不会用 Linux,让猫教他。 结果三个高一的要么不知道要 阅读全文
posted @ 2026-03-10 20:17 huhangqi 阅读(17) 评论(0) 推荐(0)
摘要: 本来想按照日期写的,但是考炸了。 到考场,终于输入对了密码。 我天,怎么这个 Dev-c++ 是英文的。 这个补全括号在哪里调? 找了一会儿没找到这辈子也是有了。 先看 T1 直接秒。 完美开局,直接开 T2。 这不是水题吗,只有 \(m=2,2n-2,2n-1\) 的情况。 写。 怎么大样例过不了 阅读全文
posted @ 2025-12-06 15:39 huhangqi 阅读(29) 评论(0) 推荐(1)
摘要: 初赛 9.19 被CPP强行提早一天会学校,遂不爽。 被猫学长投喂了麻薯,拜谢猫学长%%%。 做了2020年真题,90.5pts,赢。 晚上整个寝室楼都只有OIer,为什么其它竞赛一个赛季那么短? 9.20 因为学校压根就没什么人,所以七点起来也是吃上了早饭。 早上本来是要写19年初赛的,但是早上刚 阅读全文
posted @ 2025-12-06 15:38 huhangqi 阅读(18) 评论(0) 推荐(0)
摘要: 定义 强联通分量:在有向图中任意两个节点连通的有向图(SCC) 点双连通分量:删除任意节点仍然连通(v-DCC) 边双连通分量:删除任意边仍然连通(e-DCC) 割点:删除这个点以后图的连通性会发生改变的点 桥:删除这条边后图的连通性会发生改变的边 Tarjan Tarjan 算法可以求出上面的所有 阅读全文
posted @ 2025-11-28 09:51 huhangqi 阅读(53) 评论(0) 推荐(0)
摘要: 问题的难点在于首先要发现这不是多组询问。 首先,显然可以使用 Floyd 算法求出全源最短路。 最暴力的算法枚举边,再枚举每个三元组,时间复杂度为 \(O(n^4)\)。 然后考虑优化,假设我们之前枚举出来的边两端为 \(x\) 和 \(y\) 边长为 \(w\),并且设其路径为从 \(u\) 到 阅读全文
posted @ 2026-06-01 21:45 huhangqi 阅读(6) 评论(0) 推荐(0)
摘要: 前置知识 简单数论知识 \(d\mid n\) 表示 \(n\%d==0\) \([f]\) 艾弗森括号,在 \(f\) 为真时为 \(1\) 否则为 \(0\) 数论分块 很多莫比乌斯反演的题目都需要用到数论分块,所以先讲讲基础的数论分块。 数论分块可以快速求出其中一部分内容关于 \(\left\ 阅读全文
posted @ 2026-05-23 21:56 huhangqi 阅读(6) 评论(0) 推荐(0)
摘要: 之前学习了重链剖分,现在学习了长链剖分,遂一起写了。 重链剖分 重链剖分可以很方便地处理树上的一条链的问题。 考虑每个节点都和自己最大的儿子属于一条链,那么对于每个节点,其一直到根节点需要经过的链的数量最多只有 \(\log n\) 级别。 因为每条链链接重儿子,所以每次向上跳停下的位置,旁边一定有 阅读全文
posted @ 2026-05-16 15:59 huhangqi 阅读(13) 评论(0) 推荐(0)
摘要: 我怎么现在感觉这玩意就是一个后缀自动机。 回文自动机,简称 PAM,是用来解决回文串问题的自动机。 整体结构 PAM 和 SAM 一样,都有两套边。 建立两个根节点,其中一个代表长度为奇数的起始位置,一个代表长度为偶数的起始位置。 其中一种是普通的带字符转移边,每走一步代表这个点的回文左右两边加上一 阅读全文
posted @ 2026-05-04 16:01 huhangqi 阅读(9) 评论(0) 推荐(0)
摘要: 后缀数组最为直接的作用就是给一个字符串的每一个后缀进行排序。 考虑如何快速处理这个问题。 题目:洛谷 P3809 【模板】后缀排序 做法 对所有后缀进行排序,那么可以直接排序,每次比较就直接二分哈希找到最前面的一位不同的点,直接比较即可。 但是,这种做法下每次比较两个后缀需要二分哈希,单次比较 \( 阅读全文
posted @ 2026-04-21 15:03 huhangqi 阅读(8) 评论(0) 推荐(0)
摘要: 二进制分组感觉是一种比较少见的数据结构维护方式。 它一般可以处理一些不容易进行修改,但是你可以通过快速重构,得到一个不可修改的结构的问题。 由于这是一个做法,所以先找一道题目。 洛谷 - P4027 题目可以转化为一个斜率优化 dp 的形式,属于李超线段树板子,由于此问题的每次加入的值其 \(x\) 阅读全文
posted @ 2026-04-21 11:59 huhangqi 阅读(22) 评论(0) 推荐(0)
摘要: 网络流可以抽象理解为一个地方是入水口,一个地方是出水口,需要得到每个管道的水量。 我们希望出水口出的水尽量多,得到的就是最大流了。 先不讨论最大流的性质,考虑一下最大流怎么求。 网络流算法 EK 算法 这个水流明显不太好模拟,考虑每次增广一条水流。 我们尝试加入一条水流的路线。 不断加入,一直到无法 阅读全文
posted @ 2026-04-13 16:37 huhangqi 阅读(34) 评论(0) 推荐(1)
摘要: 为了防止自己忘记板子怎么敲,我还是决定来写FFT、NTT学习笔记了。 由于这个东西的推导实在太过复杂,所以所有内容都只给个简略的结论。 快速傅里叶变换(FFT) 整体思想 FFT 是用来快速计算多项式乘法的方法,是通过对称性和分治方法来求出多项式乘法结果的方法。 FFT 需要使用虚数进行运算。 \( 阅读全文
posted @ 2026-04-09 16:35 huhangqi 阅读(23) 评论(0) 推荐(2)
摘要: 洛谷 题目要求计算覆盖面积。 考虑如何计算两个苦无是否会相撞,又会在什么时候相撞。 如果两个方向分别向上下方向那么需要满足 \(x\) 坐标相等。 两个相遇时消耗的时间为两个的 \(y\) 坐标差值的一半(简单的相遇问题)。 左右方向同理可得。 然后考虑如果一个向下,一个向左,那么怎么判断是否会相遇 阅读全文
posted @ 2026-03-31 14:50 huhangqi 阅读(9) 评论(0) 推荐(0)