二至济南--基础算法
\(update: 2025/7/14\)
\(Meet\) \(In\) \(The\) \(Middle\)
又名折半搜索
理解
将前一半和后一半分别搜索并记录答案,再进行合并
难点在于如何合并和将什么折半
通常情况下用于\(n\le 20\)左右的\(O(3^n)\)左右的题目,将复杂度降至\(O(3^{n/2} *n)\)
模板
P3067 [USACO12OPEN] Balanced Cow Subsets G
二分
简单的算法,不简单的应用
理解
原理不再赘述
难点在于二分什么
复杂度\(O( \log n)\)
例题
贪心
显然的思想
原理
不再赘述
通常情况下你看到题就能直接反应过来是否可用贪心
例题
反悔贪心
贪心\(pro\)
原理
在发现原贪心思路错后进行反悔操作来维护
比较像\(DP\),多数在\(DP\)会爆时空限制时使用
例题
分治
重在思想
原理
将一段区间从中间(多数情况)截开,统计跨过截线的贡献并递归左右两半
不好想也不好写
例题
ADAGF - Ada and Greenflies
Ex - Min + Sum
三位偏序(待补)
陌上花开