摘要:        
P9001 [CEOI 2022] Parking 题解 前言 笔者认为自己的分析较有利于代码实现,而且理解也来的容易。 知识点 构造,模拟,图论,环,链。 分析 暴力 首先对于 \(M\le 4\) 的部分有暴力 BFS,可以 \(O(m^2(2m)!)\) 过。 性质 然后我们考虑找性质,对于一    
阅读全文
 
        
        posted @ 2025-09-13 19:52
Add_Catalyst
阅读(9)
推荐(1)
        
 
		
    
        
        
摘要:        
P12503 「ROI 2025 Day1」索契游乐园 题解 知识点 二分,三分,贪心,数学。 分析 首先可以知道我们可以把折返的贡献分为两边独立的贡献,只要一边移动的贡献设为 \(t\),另一边设为 \(2t\) 即可。 那么将坐标 \(<x_0\) 和 \(>x_0\) 的分开到两个数组中,重新    
阅读全文
 
        
        posted @ 2025-09-07 10:54
Add_Catalyst
阅读(8)
推荐(0)
        
 
		
    
        
        
摘要:        
QOJ 2273 Suffixes may Contain Prefixes 题解 知识点 KMP,exKMP,DP,FSM(DFA,NFA)。 分析 首先建出 \(S\) 的 KMP 自动机,然后考虑在自动机上 DP。 那么设状态为 \(f_{i,u}\) 表示到了 \(i\),在自动机上状态为     
阅读全文
 
        
        posted @ 2025-09-05 14:45
Add_Catalyst
阅读(11)
推荐(0)
        
            
        
        
摘要:        
P9262 [PA 2022] Łamigłówka 题解 知识点 贪心,模拟。 分析 首先知道暴力可以直接 \(O(nmK)\) 的解决。 简化操作序列 发现对于操作序列中,连在一起的 LL 等相同的字符可以缩掉,然后再进一步发现,如果同是水平方向的操作(L、P)挨在一起,那么只需要留最后一个即可    
阅读全文
 
        
        posted @ 2025-09-05 13:56
Add_Catalyst
阅读(3)
推荐(0)
        
 
		
    
        
        
摘要:        
Gym 103860B Shuttle Bus 题解 知识点 可删堆,对顶堆,换根 DP,长链剖分。 分析 首先我们有 \(O(n^2)\) 的暴力做法:我们以每个点为根,暴力对树进行长链剖分。 具体地,设 \(siz_u = \sum_{v\in S(u)} a_v\),其中 \(S(u)\) 表    
阅读全文
 
        
        posted @ 2025-09-04 22:00
Add_Catalyst
阅读(8)
推荐(0)
        
            
        
        
摘要:        
P9873 [EC Final 2021] Beautiful String 题解 知识点 字符串,LCP,Hash,KMP。 分析 首先我们知道 \(A,B,C,D,E,F\) 六个非空子串中,\(A=B=E,C=F\),那么 \(BC=EF\),我们设 \(G=BC=EF\),那么原串可以表示为    
阅读全文
 
        
        posted @ 2025-09-04 21:29
Add_Catalyst
阅读(9)
推荐(0)
        
            
        
        
摘要:        
EOlymp 1976 Programming is an art! 题解 知识点 区间 DP。 分析 设 \(f_{l,r}\) 表示区间 \([l,r)\) 中最多颜色种类数,且这些颜色的区间被包含在 \([l,r)\) 中,即要求颜色 \(i\) 满足 \([L_i,R_i)\subseteq    
阅读全文
 
        
        posted @ 2025-09-04 20:50
Add_Catalyst
阅读(6)
推荐(0)
        
 
		
    
        
        
摘要:        
QOJ 3804 Distributing the Treasure 题解 知识点 构造,二分图,DAG,最长路。 分析 首先有个很明显的特判:\(n\ge m\) 时,输出 \(1\sim m\) 即可。那么排除了上述情况后,发现 \(n\le m\le \sqrt{2\times 10^5}<4    
阅读全文
 
        
        posted @ 2025-09-03 22:09
Add_Catalyst
阅读(5)
推荐(0)
        
            
        
        
摘要:        
CF720E Cipher 题解 知识点 进制,模拟,贪心。 分析 发现我们想要确定一位数时,只有两种方法: 该位数字自己加 \(1\),从变化顺序可以看出它是哪一位。 该位数字加 \(1\),导致高位数字出现变化,看出它现在变成了 \(0\)。这种情况包括整个数字达到了 \(n+1\) 位的情况。    
阅读全文
 
        
        posted @ 2025-09-03 19:33
Add_Catalyst
阅读(9)
推荐(0)
        
 
		
    
        
        
摘要:        
AT_s8pc_4_e Enormous Atcoder Railroad 题解 知识点 DP。 分析 \(f_{i,j,k}\) 表示长度为 \(i\) 的区间,左边到原点距离为 \(j\),右边到原点距离为 \(k\) 时方案数为多少。发现只需要求满足 \(j=k\lor j+1=k\) 的状态    
阅读全文
 
        
        posted @ 2025-09-02 21:29
Add_Catalyst
阅读(12)
推荐(0)
        
 
		
    
        
        
摘要:        
P11119 [ROI 2024] 保持连接 (Day 2) 知识点 DP,前缀和。 分析 设 \(L_i,R_i\) 表示能够覆盖到点 \(i\) 的区间的左端点最小值、右端点最大值。考虑不带修改的情况。 那么设 \(g_i\) 表示以 \(i\) 作为起点,以 \([i,n]\) 内端点作为终点    
阅读全文
 
        
        posted @ 2025-09-01 16:01
Add_Catalyst
阅读(32)
推荐(0)
        
 
		
    
        
        
摘要:        
P11113 [ROI 2024] 2026 (Day 1) 题解 知识点 贪心,模拟。 分析 首先知道暴力可以直接 \(O(\sum nmQ)\) 的解决。 简化操作序列 发现对于操作序列中,连在一起的 LL 等相同的字符可以缩掉,然后再进一步发现,如果同是水平方向的操作(L、R)挨在一起,那么只    
阅读全文
 
        
        posted @ 2025-08-31 15:21
Add_Catalyst
阅读(5)
推荐(0)
        
 
		
    
        
        
摘要:        
后缀数组 学习笔记 定义 包含 \(sa\) 和 \(rk\) 两个数组,其含义如下: \(sa_i\) 表示:将所有后缀按字典序排序后,在第 \(i\) 位的后缀的第一位下标。 \(rk_i\) 表示:将所有后缀按字典序排序后,第一位下标为 \(i\) 的后缀的排名。 其中 \(sa\) 是我们所    
阅读全文
 
        
        posted @ 2025-08-21 14:18
Add_Catalyst
阅读(5)
推荐(0)
        
            
        
        
摘要:        
广义后缀自动机 学习笔记 概述 广义后缀自动机(General Suffix Automaton)是将后缀自动机整合到字典树中来解决对于多个字符串的子串问题。 定义 字符串集合 \(\set{s}\) 的广义后缀自动机(GSAM)是一个接受 \(\set{s}\) 的所有字符串的所有后缀的最小 DF    
阅读全文
 
        
        posted @ 2025-08-21 14:16
Add_Catalyst
阅读(10)
推荐(0)
        
            
        
        
摘要:        
后缀自动机 学习笔记 概述 后缀自动机(suffix automaton, SAM)是一个能解决许多字符串相关问题的有力的数据结构。 直观上,字符串的 SAM 可以理解为给定字符串的 所有子串 的压缩形式。 定义 字符串 \(s\) 的后缀自动机(SAM)是一个接受 \(s\) 的所有后缀的最小 D    
阅读全文
 
        
        posted @ 2025-08-21 14:15
Add_Catalyst
阅读(30)
推荐(0)
        
 
		
    
        
        
摘要:        
[CCO 2024] Telephone Plans 题解 知识点 启发式合并,启发式分裂,BFS,LCT。 分析 首先有“所有边连接起来会得到森林”和“所有边只会出现一段连续的时间”两个重要条件。 然后对于连边和删边就有如下算法: 连边:启发式合并,将较小的连通块接到较大的上面。 删边:启发式分裂    
阅读全文
 
        
        posted @ 2025-08-20 19:49
Add_Catalyst
阅读(5)
推荐(0)
        
            
        
        
摘要:        
[CCO 2024] Heavy Light Decomposition 题解 知识点 DP,线段树优化。 分析 考虑 \(a_i,a_{i+1}\) 间限制: \(a_i \neq a_{i+1}\)。 \(a_i,a_{i+1}\) 之间只有一个为重一个为轻,则可以得到同时包含它们的区间限制:     
阅读全文
 
        
        posted @ 2025-08-20 19:33
Add_Catalyst
阅读(11)
推荐(0)
        
 
		
    
        
        
摘要:        
HDU - 6056 simple counting problem 题解 ——【UNR #2】梦中的题面 原版 & 加强版题目 知识点 组合数学,容斥,斯特林数,计数 DP。 分析 首先第一步容斥,考虑钦定某些一定 \(i\) 超过 \(b_i-c\) 的限制,即至少选 \(b_i-c+1\) 个    
阅读全文
 
        
        posted @ 2025-08-17 22:09
Add_Catalyst
阅读(13)
推荐(0)
        
 
		
    
        
        
摘要:        
POJ 2759 Distributing tasks/Lyk Love painting 题解 知识点 二分,DP,尺取。 分析 约定 \(a_i,b_i,c_i\) 分别表示第一排树种树难度、第二排树种树难度以及一二排树种树难度的和,而 \(A_i,B_i,C_i\) 分别是它们的前缀和。 首先    
阅读全文
 
        
        posted @ 2025-08-06 20:14
Add_Catalyst
阅读(9)
推荐(0)
        
 
		
    
        
        
摘要:        
P9864 [POI 2021/2022 R2] age 题解 知识点 树形最值 DP,分类讨论。 分析 简化题意 给定 \(k\) 个关键点,将树划分为 \(k\) 个连通块,每个块包含一个关键点。 设特殊点 \(i\) 在其联通块内为端点的最长链长度为 \(len_i\),则一种划分方案的代价为    
阅读全文
 
        
        posted @ 2025-06-19 21:36
Add_Catalyst
阅读(41)
推荐(0)
        
 
		
    
        
        
摘要:        
容斥计数 笔记&例题 内容 主要就是容斥原理和二项式反演。 容斥原理 设 \(A_1,A_2,...,A_n\) 是集合 \(S\) 的子集,表示以集合 \(S\) 代表可能发生的事件的 \(n\) 个子事件, \(|A_i|\) 表示子事件 \(A_i\) 发生的次数 \((0 < i \le n    
阅读全文
 
        
        posted @ 2025-06-13 20:41
Add_Catalyst
阅读(11)
推荐(0)
        
 
		
    
        
        
摘要:        
P11390 [COCI 2024/2025 #1] 教师 / Učiteljica 题解 知识点 线段树,扫描线,容斥,状压,线段树分治。 分析 首先可以很容易的看出这题和扫描线有关,把 \([l,r]\) 转换成图形上的点即可。我们直接看到子任务 3,满足特殊性质 B:\(k = 1\)。 那么    
阅读全文
 
        
        posted @ 2025-06-11 21:38
Add_Catalyst
阅读(7)
推荐(0)
        
            
        
        
摘要:        
「BZOJ 4361」isn 题解 知识点 DP,组合数学,容斥,树状数组。 分析 首先,我们不考虑「非降时停止」这个限制,那么则可用 DP 求解。 设 \(f_{i,j}\) 表示 \(1\sim i\) 中,组成一个长度为 \(j\) 的非降子序列的方案数。初态和转移式: \[\forall i    
阅读全文
 
        
        posted @ 2025-06-11 20:25
Add_Catalyst
阅读(6)
推荐(0)
        
 
		
    
        
        
摘要:        
「BZOJ 4765」普通计算姬 题解 知识点 主席树,分块,DFS 序。 分析 \(O(m\sqrt{n\log_2{n}})\) 我们可以离线对修改操作分块,假设每块长度为 \(B\)。 那么对于每块有修改的点存下来,其余的点 \(O(n)\) 的复杂度内预处理出来,以前缀和的方式存下来。 那么    
阅读全文
 
        
        posted @ 2025-06-07 11:01
Add_Catalyst
阅读(12)
推荐(0)
        
 
		
    
        
        
摘要:        
P10656 [ROI 2017] 学习轨迹 (Day 2) 题解 知识点 线段树,单调栈。 分析 首先分析最特殊的情况——只选某一个序列的全部值,这导致后面考虑两个序列都选的时候,其中至少一个序列满足:选的区间和大于整个区间的一半。 因为如果两个序列选的区间和都小于等于其总和一半,那么我们完全可以    
阅读全文
 
        
        posted @ 2025-06-05 16:21
Add_Catalyst
阅读(11)
推荐(0)
        
            
        
        
摘要:        
P11714 [清华集训 2014] 主旋律 题解 知识点 状压计数 DP。 题意简述 一个 \(n\) 个点,\(m\) 条边的有向图,现在删除一些边,求删除边后图为强联通的方案数,答案对 \(10^9+7\) 取模。 分析 考虑单步容斥,得到「图为强联通的方案数」就等于「总方案数」减去「图不为强    
阅读全文
 
        
        posted @ 2025-06-05 14:13
Add_Catalyst
阅读(15)
推荐(0)
        
 
		
    
        
        
摘要:        
P3213 [HNOI2011] 勾股定理 题解 知识点 二进制枚举,树形计数 DP。 分析 连边 对于 \(A^2+B^2=C^2\),有 \(A=m^2-n^2,B=2mn,C=m^2+n^2\)。 于是我们枚举 \(m,n\),则可以在 \(O(\sqrt{H}\ln{H})\) 的调和级数复    
阅读全文
 
        
        posted @ 2025-06-04 18:56
Add_Catalyst
阅读(6)
推荐(0)
        
 
		
    
        
        
摘要:        
P6361 [CEOI 2018] Fibonacci representations 题解 知识点 Fibonacci 数列,平衡树,齐肯多夫定理,连续段 DP,矩阵优化 DP,动态 DP。 分析 定义 为方便,我们学习一下大佬的表示形式: \[\begin{matrix} b_1 & b_2 &    
阅读全文
 
        
        posted @ 2025-05-30 22:13
Add_Catalyst
阅读(9)
推荐(0)
        
            
        
        
摘要:        
CF1707D Partial Virtual Trees 题解 知识点 树形 DP,二项式反演,容斥。 分析 容斥 考虑先处理容斥的部分,也就是把集合关系中的 \(\subsetneq\) 转为 \(\subseteq\),这里需要用到容斥和反演。 设: \(G(k)\) 表示题目要求的答案。 \    
阅读全文
 
        
        posted @ 2025-05-30 20:56
Add_Catalyst
阅读(7)
推荐(0)
        
 
		
    
        
        
摘要:        
P10655 [ROI 2017] 反物质 (Day 2) 题解 知识点 动态规划,记忆化搜索,单调栈,单调队列,决策单调性。 分析 我们考虑设 \(f_i\) 表示质量为 \(i\) 时,最坏情况下利润最大值,然后正序 DP,发现不太好做。 对于这类「最坏至少」问题,我们可以考虑用记忆化搜索的思路    
阅读全文
 
        
        posted @ 2025-05-28 20:58
Add_Catalyst
阅读(16)
推荐(1)
        
 
		
    
        
        
摘要:        
P8996 [CEOI 2022] Abracadabra 题解 知识点 线段树,平衡树,树状数组。 分析 首先,我们可以分析一下样例。 洗牌次数 自底向上的牌堆 \(0\) \(7\ 5\ 2\ 9\ 10\ 8\ 4\ 3\ 6\ 1\) \(1\) \(7\ 5\ 2\ 8\ 4\ 3\ 6\    
阅读全文
 
        
        posted @ 2025-05-26 19:51
Add_Catalyst
阅读(8)
推荐(1)
        
 
		
    
        
        
摘要:        
P6846 [CEOI 2019] Amusement Park 题解 知识点 状压计数 DP,DAG 计数,容斥,FWT。 分析 首先,如果我们可以花 \(c\) 把原图转成一张 DAG,那么就会有另一种 \(m-c\) 的方案。所以答案就变成了 \(\frac{m}{2}\) 倍的无向图定向 D    
阅读全文
 
        
        posted @ 2025-05-23 18:52
Add_Catalyst
阅读(14)
推荐(0)
        
 
		
    
        
        
摘要:        
2024“钉耙编程”中国大学生算法设计超级联赛(1) 模拟总结 A 循环位移 知识点 简单 Hash。 代码 Source code - Virtual Judge (vjudge.net)。 B 星星 知识点 背包,小体积多重背包优化。 分析 本题直接 \(O(\sum nk)\) 也可以卡过,但    
阅读全文
 
        
        posted @ 2025-05-13 22:20
Add_Catalyst
阅读(26)
推荐(1)
        
 
		
    
        
        
摘要:        
P9021 [USACO23JAN] Subtree Activation P 题解 知识点 树形 DP。 分析 转化 首先我们可以想到直接在树上进行移动覆盖,最优答案就是覆盖所有节点的最小花费。 我们设初始状态为 \(0\) 节点,从 \(0\) 节点移动到任意节点 \(u(u>0)\) 花费都是    
阅读全文
 
        
        posted @ 2025-05-12 22:12
Add_Catalyst
阅读(6)
推荐(0)
        
 
		
    
        
        
摘要:        
「USACO24DEC G」Cowdepenence 题解 知识点 根号分治。 分析 \(O(n\sqrt{n}\log_2{n})\) 我们考虑先将每种颜色分开,然后对于每种颜色分别处理。 可以类比数论分块,我们会发现当距离范围 \(x\) 处于某个区间 \([l,r]\) 时,友谊小组的最小数量    
阅读全文
 
        
        posted @ 2025-05-07 21:58
Add_Catalyst
阅读(9)
推荐(1)
        
 
		
    
        
        
摘要:        
莫比乌斯函数 学习笔记 定义 \[\mu(n) = \begin{cases} 1 & n = 1 \\ 0 & p^2|n \\ (-1)^k & n=\prod_{i=1}^k p_k \\ \end{cases} \]其中 \(p,p_i\) 代表质数。 性质 它为积性函数。 \[\sum_{    
阅读全文
 
        
        posted @ 2025-05-04 16:05
Add_Catalyst
阅读(43)
推荐(0)
        
            
        
        
摘要:        
二维莫队复杂度分析及块长计算 分析 设一个矩阵长 \(N\),宽 \(M\),题目询问次数为 \(Q\),块长 \(Bn\),块宽 \(Bm\),指针(矩形端点坐标)为 \(x_a,y_a,x_b,y_b\)。 那么,\(x_a,x_b\) 最大更新次数为:\(Bn\),单次更新时间复杂度 \(O(    
阅读全文
 
        
        posted @ 2025-05-04 15:26
Add_Catalyst
阅读(17)
推荐(0)
        
 
		
    
        
        
摘要:        
网络流 学习笔记 前言 网络流中板子并不难,真正难的是复杂度的证明还有一大堆的二级结论,本笔记主要记录学习路上遇到的各种网络流技巧与结论,相关证明可以去 OI Wiki 看。 最大流 & 最小割 首先有一个基本定理:最大流等价于最小割。 Edmonds–Karp 算法 简称 EK 算法,是最最基础的    
阅读全文
 
        
        posted @ 2025-04-03 14:16
Add_Catalyst
阅读(29)
推荐(0)
        
 
		
    
        
        
摘要:        
(广义)圆方树 & 仙人掌 学习笔记 前言 圆方树可用于分解仙人掌,同时也可以拿来处理点双,是一个不能错过的知识点。 实现 先对一个无向图跑 Tarjan 求出点双,然后定义: 圆点:就是原点。 方点:每个点双就是一个方点。 然后我们让方点与自己点双中的所有圆点都连上边,就得到了圆方树。 应用 实现    
阅读全文
 
        
        posted @ 2025-03-22 14:33
Add_Catalyst
阅读(26)
推荐(0)
        
 
		
    
        
        
摘要:        
[ZJOI2022] 树 题解 知识点 计数动态规划,容斥。 题意简述 要求生成两棵树,满足一下三个条件: 在第一棵树中:\(1\) 为根,对于 \(i\in [2,m]\),从 \([1,i-1]\) 中选一个点作为它的父节点。 在第二棵树中:\(m\) 为根,对于 \(i\in [1,m-1]\    
阅读全文
 
        
        posted @ 2025-03-13 21:11
Add_Catalyst
阅读(15)
推荐(0)