洛谷-试炼场:普及练习场
原题单作者 @CLCK 编排的普及组训练路径,覆盖模拟、排序、搜索、动态规划、数论和基础模板。
洛谷-试炼场:普及练习场
原题单作者:@CLCK。转载或引用请注明作者。
普及组选手可冲刺训练,提高组选手也可在此巩固基础。
基础算法
简单的模拟
开始普及组训练。所谓模拟,就是直接根据题意编写程序,思维难度相对简单。
交叉模拟
这里也是模拟,但会混入其他知识。思维难度不大,编写时需要更仔细。
- luogu P1031洛谷原题
- luogu P1086洛谷原题
排序
将杂乱的数据整理得有规律。排序算法很多,要根据题目选择合适的方法。
排序 Ex
这一阶段的排序更进一步:既会融合其他技巧,排序本身也有更多变化。
- luogu P1583洛谷原题
- luogu P1051洛谷原题
字符串处理
字符串处理会更有意思,难度也更大,需要认真分析规则。
- luogu P1071洛谷原题
- luogu P1538洛谷原题
贪心
贪心只考虑当前最有利的选择。生活中不能一味贪心,但 OI 里它有时就是正确答案。
- luogu P1181洛谷原题
- luogu P1031洛谷原题
深度优先搜索
搜索可以穷举各种情况。许多题都能用搜索完成;即使不能,它也是重要的部分分工具。
- luogu P1040洛谷原题
广度优先搜索
广度优先搜索常用于“最短步数”问题,也可用于逐层、全面地搜索状态。
- luogu P1141洛谷原题
带有技巧的搜索
这里的搜索不仅包含 DFS 和 BFS,还包括剪枝、记忆等加速技巧。
- luogu P1118洛谷原题
- luogu P1434洛谷原题
分治算法
将大问题拆为小问题,分别解决,再合并答案。
数学、数据结构与动态规划
简单数学问题
用计算机解决繁琐的数学问题,是很合适的组合。
递推与递归二分
递推从基础状态逐层构造答案;二分不仅能查找,还能确定满足条件的最优值。
- luogu P1192洛谷原题
线性数据结构
数组、链表、队列和栈都是线性结构,善用它们能简化很多问题。
树形数据结构
从一个根节点不断分叉便形成树,它可以表达数据之间的从属关系。
背包问题
这是最基础的动态规划模型。第一次接触时可能不易理解,坚持跨过这个坎。
- luogu P1064洛谷原题
线性动态规划
在线性结构上设计状态转移,是必须掌握的动态规划基础。
- luogu P1091洛谷原题
- luogu P1280洛谷原题
- luogu P1282洛谷原题
多维动态规划
动态规划不再局限于一个维度,既要留意时间复杂度,也要注意空间复杂度。
- luogu P1508洛谷原题
- luogu P1006洛谷原题
- luogu P1387洛谷原题
- luogu P1417洛谷原题
- luogu P1736洛谷原题
动规与记忆化
这些题有多种做法,有时记忆化搜索能降低实现和思考难度。
- luogu P1064洛谷原题
- luogu P1541洛谷原题
- luogu P1026洛谷原题
- luogu P1052洛谷原题
高精度算法
当 long long 仍然不够时,就需要自己实现高精度算法。
- luogu P2142洛谷原题
- luogu P1604洛谷原题
提高综合训练
贪心 Pro
虽然仍是贪心题,但已经不是可以轻松解决的简单贪心。
- luogu P1031洛谷原题
简单数论
数学与 OI 密切相关:数学不仅是基础,也是算法的重要来源。
- luogu P1865洛谷原题
- luogu P1372洛谷原题
- luogu P1338洛谷原题
- luogu P2158洛谷原题
- luogu P1582洛谷原题
BOSS 战:普及综合练习 1
好不容易闯到这一关,准备好就继续挑战。
- luogu P1736洛谷原题
BOSS 战:普及综合练习 2
解决第二个 BOSS。战斗虽难,但仍然可以逐步拆解问题。
- luogu P1201洛谷原题
- luogu P1095洛谷原题
- luogu P1058洛谷原题
- luogu P2258洛谷原题
- luogu P1108洛谷原题
BOSS 战:普及综合练习 3
普及练习场的最终 BOSS。打倒它,开启下一个级别。
- luogu P1062洛谷原题
普及常见模板
这里收录基础算法模板;提高和省选阶段也有对应的模板题。
- luogu P3371洛谷原题