2022 年周赛题目总结(下篇)
由于B站专栏不支持表格,请到下面的力扣链接上查看。
https://leetcode.cn/circle/discuss/WR1MJP/
我把周赛题目分为以下七类:
模拟
技巧
动态规划
数据结构
图论
数学
思维题
1. 模拟
模拟指按照题目要求实现相应代码,一般暴力即可通过。
某些模拟题会有点复杂,这也能很好地锻炼实现代码的能力。
注:常见于周赛第一题(约占 90%)、第二题(约占 40%)和第三题(约占 19%)。
2. 技巧
技巧指一些比较套路的算法,包括双指针、滑动窗口、二分(主要指二分答案)、前缀和、差分、前后缀分解、位运算、二进制枚举、贡献法等。这些技巧相对容易掌握,想在周赛上分的同学可以优先学习这些内容。
顺带一提,我一般把窗口大小不固定的叫做双指针,窗口大小固定的叫做滑动窗口。
注:常见于周赛第二题(约占 18%)和第三题(约占 27%)。
3. 动态规划
学习动态规划是否有捷径?我的看法是没有捷径,多做题就是最好的训练方法。对于不会做的题目,要反复训练到一分钟内能想出状态转移方程为止。
如果你很难想出状态转移方程,以及递推的顺序,可以先从记忆化搜索开始思考,然后转换到递推上。
记忆化搜索像是自动挡,无需思考递推顺序,边界条件也容易确认;而递推像是手动挡,需要仔细确认递推的顺序以及初始值。但记忆化搜索并不是万能的,某些题目递推的写法可以结合数据结构等来优化时间复杂度。
注:常见于周赛第四题(约占 28%),偶见于第三题(约占 9%)。
4. 数据结构
包括堆(优先队列)、单调栈、单调队列、字典树、并查集、树状数组、线段树等。
学习这些只是开始,能否灵活运用才是关键。
注:常见于周赛第四题(约占 21%)。
5. 图论
周赛中的图论题目比较少,除了下面选的 DFS、BFS、拓扑排序、基环树、二分图判定等,还有最短路、DFS 时间戳等(这些可以在上半年的周赛题目中学到)。
注:偶见于周赛第三题(约占 10%)和第四题(约占 13%)。
6. 数学
主要考察的是数论(质数、GCD、LCM、逆元等)和组合数学。
注:占比很少,不足 10%。
7. 思维题
包含贪心、脑筋急转弯等,挑选一些比较有趣的题目。
注:常见于周赛第二题(约占 21%)、第三题(约占 26%)和第四题(约占 17%)。