寒假复习之算法
2026-02-04 20:40:51
发布于:北京
我承认我懒了。
寒假学的东西就都放在这一个讨论里吧。
不过好像打多了字加载会很慢。
————————————————————————————————
先梳理一下要复习什么……马上要集训了。
可以性剪枝,最优性剪枝,kmp,记忆化搜索,折半搜索,贪心,反悔贪心,双向深搜。
主要是重新梳理概念,补题和做一些蓝蓝绿绿的题。
然后刷一刷CSP-S复赛的题目好了。
做完也就差不多要去集训了……好像有20天。
—————————————————————————————————
一.可行性剪枝
说实话,剪枝是很玄乎的东西,考场上,你永远都不会知道这份经过了你一剪再剪的代码能不能A。
这里,我有两份解释:


嗯,可行性剪枝就是将无论如何都已经不会为最终答案做出贡献的枝剪掉。
这边顺便一起把最优性剪枝的概念一起顺了好了,因为我找不到“可行性剪枝”标签的题目。只有“剪枝”类别的。
二.最优性剪枝
这个挺好理解的,就不总结了。

看到OI-Wiki里面把记忆化搜索也归为剪枝了,那把那个一起弄掉吧。
三.记忆化搜索
记忆化搜索和DP本质差不多吧。
或者说就是一种。
递归式DP,用数组保存已有的答案。
想要使用记搜,你得保证一件事:
比如DP[i][j]它第一次求出的值是x,后面无论多少次求,它的值都必定是x。
它本质是没有模板的,或者说我认为所有的算法都是没有模板的。
只要你能把题目要求实现出来就好。
但是我的老师认为背模板可以让你打代码完成题目更快。
所以我就拉一道简单一点的题目介绍一下模板好了。
采药
……我下午还要连上4h文化课补课你们敢信?
三.折半搜索
*在OI-wiki中,我了解到二分搜索和折半搜索是不同的搜索,但是目前我没查出两者有什么不同,希望对此了解的同学可以解答。不过这里,我就将它们视作同一种算法进行解释。
先进行一个介绍:
折半搜索,又称 meet in the middle(折半搜索)。
这种算法,往往争对于n=40左右 的题目。
此时你不会DP,剪枝无法拿满分。
而mitm可以帮助你将时间复杂度从转化为。
关于实现:
折半搜索会先在之间进行搜索。
并且将搜索的结果存储。
然后再在之间进行搜索。
然后在用例题看看模板:
题目大意:想将1-n的所有数划分成两个子集,要求两个子集的和相等。问有多少中方案。
观察:数据范围
ST表
四.双向广度优先搜索
五.倍增算法求最近公共祖先
六.Tarjan算法求最近公共祖先
全部评论 2
2026-02-28 来自 浙江
0ST 表好评,LCA 好评
2026-02-28 来自 广东
0

















有帮助,赞一个