02 2025 档案

摘要:省选集训-图论杂题 CF888G 到现在已经是典中典了。 考虑 boruvka 算法,根据异或性质,事实上 Trie 树也可以叫做一类 boruvka 异或最小生成树树。 所以在Trie上分治做,每遇到一个分叉点就说明有权值,将左边的拿出来查右边取最值即可。 P8260 嗯,史中史。 是这样的,首先 阅读全文
posted @ 2025-02-06 22:10 spdarkle 阅读(67) 评论(0) 推荐(0)
摘要:省选集训-字符串杂题 基础子串结构太ex就不看了 CF1827C 考虑如何将一个由若干偶回文串拼接而成的串分解开。 容易发现每次从后往前删掉最短回文串就是对的。 所以问题变成求 \(l_i\) 表示 \([l_i,i]\) 是以 \(i\) 为结尾的最短回文串位置。 则可以 \(dp\) 计算,\( 阅读全文
posted @ 2025-02-06 20:34 spdarkle 阅读(85) 评论(0) 推荐(0)
摘要:省选模拟4 A 小丑做法,设 \(f_{S,i,j}\) 为使用边权 \(\le j\) 的边连通了集合 \(S\),里面使用了 \(i\) 个 \(a\) 的最小生成树。 转移朴素枚举,复杂度 \(O(3^nm^3)\) B 是原题。 注意到一个点走过一轮后,从父亲离开后下一次访问会完全访问。 因 阅读全文
posted @ 2025-02-02 19:00 spdarkle 阅读(24) 评论(0) 推荐(0)
摘要:省选模拟6 只会T1,给大家磕头了。 可以根据已知信息得到一个DP方程。 \[f_{i,j}=\max(f_{i-1,j}+[j\le X_i]P_i,f_{i,j-1}+[i\le Y_j]Q_j) \]求 \(f_{n,m}\)。 走格子形式 dp 优化可以考虑整行转移 可以写作: \[f_{i 阅读全文
posted @ 2025-02-02 18:16 spdarkle 阅读(24) 评论(0) 推荐(0)
摘要:算法原理请见 oi-wiki SAM 模板:建立SAM & 统计 endpos 大小 #include<bits/stdc++.h> using namespace std; #define N 2050500 int lik[N],ch[N][27],len[N],num=1,lst=1,mn[N 阅读全文
posted @ 2025-02-02 17:16 spdarkle 阅读(39) 评论(0) 推荐(0)
摘要:这应该是第一节能够课上听懂的知识了 算法原理 SA 算法,著名的后缀数组 以下只讨论 \(O(n\log n)\) 的倍增构造 目标:求出 \(sa_i\) 表示后缀字典序排名为 \(i\) 的后缀的起始位置。 ababa --> 53142 算法核心:倍增法。 我们考虑先求出仅考虑 \([i,i+ 阅读全文
posted @ 2025-02-02 17:12 spdarkle 阅读(59) 评论(1) 推荐(0)