摘要: 声明:本文部分内容经过 AI 润色。 你这是哪个SAM 后缀自动机,简称 SAM,是一种我认为非常复杂的自动机,但是它也有很多优秀的特点,所以能够处理很多问题,很多后缀数组问题也都能用后缀自动机完成。 整体结构 SAM 的内部包含两套边,理解这两套边是掌握 SAM 的关键。 第一套边:带字符的转移边 阅读全文
posted @ 2026-04-24 15:10 huhangqi 阅读(80) 评论(4) 推荐(2)
摘要: 由于 NOIP 被打飞,压线拿下 1=,只好来体验一下省选 看看我能翻多少名(准考证ZJ-88,虽然很吉利但是应该也是倒数了) 3.4 冬妮娅忽然跑到机房说自己放假在家太无聊了,也想来打比赛,这样加上学长我们学校就有六个人去了。 冬妮娅说自己不会用 Linux,让猫教他。 结果三个高一的要么不知道要 阅读全文
posted @ 2026-03-10 20:17 huhangqi 阅读(21) 评论(0) 推荐(0)
摘要: 本来想按照日期写的,但是考炸了。 到考场,终于输入对了密码。 我天,怎么这个 Dev-c++ 是英文的。 这个补全括号在哪里调? 找了一会儿没找到这辈子也是有了。 先看 T1 直接秒。 完美开局,直接开 T2。 这不是水题吗,只有 \(m=2,2n-2,2n-1\) 的情况。 写。 怎么大样例过不了 阅读全文
posted @ 2025-12-06 15:39 huhangqi 阅读(32) 评论(0) 推荐(1)
摘要: 初赛 9.19 被CPP强行提早一天会学校,遂不爽。 被猫学长投喂了麻薯,拜谢猫学长%%%。 做了2020年真题,90.5pts,赢。 晚上整个寝室楼都只有OIer,为什么其它竞赛一个赛季那么短? 9.20 因为学校压根就没什么人,所以七点起来也是吃上了早饭。 早上本来是要写19年初赛的,但是早上刚 阅读全文
posted @ 2025-12-06 15:38 huhangqi 阅读(22) 评论(0) 推荐(0)
摘要: 三维偏序 第一维,通过排序直接解决 第二维,通过归并排序处理 第三维,通过数据结构解决 void CDQ(int l,int r){ if(l==r)return; int mid = l+r>>1,L=l,R=mid+1; CDQ(l,mid),CDQ(mid+1,r); for(int i=l; 阅读全文
posted @ 2025-11-28 09:57 huhangqi 阅读(70) 评论(0) 推荐(0)
摘要: 定义 强联通分量:在有向图中任意两个节点连通的有向图(SCC) 点双连通分量:删除任意节点仍然连通(v-DCC) 边双连通分量:删除任意边仍然连通(e-DCC) 割点:删除这个点以后图的连通性会发生改变的点 桥:删除这条边后图的连通性会发生改变的边 Tarjan Tarjan 算法可以求出上面的所有 阅读全文
posted @ 2025-11-28 09:51 huhangqi 阅读(59) 评论(0) 推荐(0)
摘要: 洛谷 非常神的构造。 首先发现 \(m\le n\) 的情况是白给的,直接一个人最多给一个就可以了。 那么在 \(m>n\) 的情况中,\(n\) 的范围就很小了。 设 \(v(A,S_A)\) 表示 \(A\) 这个人选择了集合 \(S_A\) 的价值。 先考虑 \(n=2\) 的情况,如果我们从 阅读全文
posted @ 2026-07-08 22:16 huhangqi 阅读(3) 评论(0) 推荐(0)
摘要: 洛谷 一个并不需要 KMP 的 \(O(n^2)\) 算法。 显然要考虑 dp。 与 KMP 方法不同的是,我们不考虑加入一个数的贡献,而是考虑从一个点为起点的目标字符串串前缀的贡献。 那么状态里需要记录一下目前已经确定了前面几位,以及接下来应该考虑的转移位置。 下一个转移位置应该是范围不被前面的串 阅读全文
posted @ 2026-07-08 21:15 huhangqi 阅读(7) 评论(0) 推荐(0)
摘要: AtCoder 参考 这篇题解 的时候感觉时间复杂度可以卡掉,所以我补充一下 DAG 链剖分这个做法怎么做。 暴力需要找到字典序排在第 \(k\) 的子序列,考虑建立序列自动机,也就是从起始点开始向下走,到任意点的每条路径都对应一个原字符串的子序列。 为了便于求出后面的 \(p\) 个字符,我们可以 阅读全文
posted @ 2026-07-07 21:00 huhangqi 阅读(8) 评论(0) 推荐(0)
摘要: AtCoder 我们肯定会先坐地铁,因此考虑每个地铁之间怎么设立公交点。 题目要求我们计算有几种设置方法,因此考虑 dp。我们先坐了地铁,那么之后就只会坐公交了,所以对于每个地铁站之间的地段可以单独讨论,最后用乘法原理计算。 对于不同的段,我们除了长度不同,还有左右两端可以走的长度不同。 在起始状态 阅读全文
posted @ 2026-07-07 15:32 huhangqi 阅读(6) 评论(0) 推荐(0)
摘要: 发现自己当时写这个学习笔记的时候精神状态好像不太正常,现在改了一下才搬过来。 一个图是二分图,就一定能分成两部分,而且每部分的点绝不会和自己这一部分的点直接相连。 二分图的判断非常水,直接黑白染色就行了。只要没有奇环就可以了。 然后就会有很多板子题了。 接着就是二分图的最大匹配问题。解决二分图的最大 阅读全文
posted @ 2026-06-11 21:29 huhangqi 阅读(12) 评论(0) 推荐(0)
摘要: 问题的难点在于首先要发现这不是多组询问。 首先,显然可以使用 Floyd 算法求出全源最短路。 最暴力的算法枚举边,再枚举每个三元组,时间复杂度为 \(O(n^4)\)。 然后考虑优化,假设我们之前枚举出来的边两端为 \(x\) 和 \(y\) 边长为 \(w\),并且设其路径为从 \(u\) 到 阅读全文
posted @ 2026-06-01 21:45 huhangqi 阅读(11) 评论(0) 推荐(0)
摘要: 前置知识 简单数论知识 \(d\mid n\) 表示 \(n\%d==0\) \([f]\) 艾弗森括号,在 \(f\) 为真时为 \(1\) 否则为 \(0\) 数论分块 很多莫比乌斯反演的题目都需要用到数论分块,所以先讲讲基础的数论分块。 数论分块可以快速求出其中一部分内容关于 \(\left\ 阅读全文
posted @ 2026-05-23 21:56 huhangqi 阅读(7) 评论(0) 推荐(0)
摘要: 之前学习了重链剖分,现在学习了长链剖分,遂一起写了。 重链剖分 重链剖分可以很方便地处理树上的一条链的问题。 考虑每个节点都和自己最大的儿子属于一条链,那么对于每个节点,其一直到根节点需要经过的链的数量最多只有 \(\log n\) 级别。 因为每条链链接重儿子,所以每次向上跳停下的位置,旁边一定有 阅读全文
posted @ 2026-05-16 15:59 huhangqi 阅读(15) 评论(0) 推荐(0)
摘要: 我怎么现在感觉这玩意就是一个后缀自动机。 回文自动机,简称 PAM,是用来解决回文串问题的自动机。 整体结构 PAM 和 SAM 一样,都有两套边。 建立两个根节点,其中一个代表长度为奇数的起始位置,一个代表长度为偶数的起始位置。 其中一种是普通的带字符转移边,每走一步代表这个点的回文左右两边加上一 阅读全文
posted @ 2026-05-04 16:01 huhangqi 阅读(13) 评论(0) 推荐(0)