一、CSP-J 题单(65 题)
以下题单覆盖 CSP-J 常考知识点,题型与真题风格类似,适合系统训练。
1. 分支结构(5 题)
- P5710【深基3.例2】数的性质:多重条件判断。
- P5711【深基3.例3】闰年判断:经典分支题。
- P5712【深基3.例4】Apples:简单分支。
- P5713【深基3.例5】洛谷团队系统:条件比较。
- P5714【深基3.例7】肥胖问题:浮点数比较与分支。
2. 循环结构(6 题)
- P5715【深基3.例8】三位数排序:循环与排序入门。
- P5716【深基3.例9】月份天数:循环判断。
- P5720【深基4.例4】一尺之棰:while 循环。
- P5721【深基4.例6】数字直角三角形:双重循环。
- P5722【深基4.例11】数列求和:累加求和。
- P5723【深基4.例13】质数口袋:循环与质数判断。
3. 数组(6 题)
- P1428小鱼比可爱:数组遍历与比较。
- P1427小鱼的数字游戏:数组逆序输出。
- P5727【深基5.例3】冰雹猜想:数组存储中间值。
- P5728【深基5.例5】旗鼓相当的对手:多维数组。
- P5729【深基5.例7】工艺品制作:三维数组。
- P5730【深基5.例10】显示屏:字符数组。
4. 字符串(6 题)
- P5015标题统计:字符串长度统计。
- P1308统计单词数:字符串查找。
- P5733【深基6.例1】自动修正:大小写转换。
- P5734【深基6.例6】文字处理软件:字符串操作综合。
- P5735【深基6.例7】距离函数:字符串转数字。
- P5736【深基6.例8】质数筛:字符串与筛法结合。
5. 函数与递归(6 题)
- P5737【深基7.例3】闰年展示:函数封装。
- P5738【深基7.例4】歌唱比赛:函数与数组。
- P5739【深基7.例7】计算阶乘:递归入门。
- P5740【深基7.例9】最厉害的学生:结构体与函数。
- P5741【深基7.例10】旗鼓相当的对手:结构体比较。
- P5742【深基7.例11】评等级:结构体综合。
6. 排序与模拟(6 题)
- P1059明明的随机数:去重排序。
- P1068分数线划定:排序与模拟。
- P1781宇宙总统:大数比较排序。
- P1093奖学金:多关键字排序。
- P1271【深基9.例1】选举学生会:计数排序。
- P1177【模板】排序:快速排序模板。
7. 贪心(6 题)
- P1208混合牛奶:经典贪心。
- P1223排队接水:贪心排序。
- P1803凌乱的yyy:区间贪心。
- P3817小A的糖果:贪心模拟。
- P1478陶陶摘苹果:贪心选择。
- P5019铺设道路:贪心差分。
8. 搜索(6 题)
- P1605迷宫:DFS 入门。
- P1036选数:DFS 组合。
- P1219八皇后:经典 DFS。
- P1443马的遍历:BFS 入门。
- P1135奇怪的电梯:BFS 最短路。
- P1451求细胞数量:连通块搜索。
9. 数学与数论(6 题)
- P1029最大公约数和最小公倍数问题:数论基础。
- P1075质因数分解:质数判断。
- P1307数字反转:数字处理。
- P1423小玉在游泳:浮点累加。
- P1424小鱼的航程:周期计算。
- P1980计数问题:数字统计。
10. 高精度(4 题)
- P1601A+B Problem(高精):高精度加法。
- P1303A*B Problem:高精度乘法。
- P1480A/B Problem:高精度除法。
- P2142高精度减法:高精度减法。
11. 综合模拟(8 题)
- P1046陶陶摘苹果:简单模拟。
- P1047校门外的树:区间模拟。
- P1085不高兴的津津:模拟。
- P1089津津的储蓄计划:模拟。
- P1421小玉买文具:模拟。
- P1422小玉家的电费:分段计费。
- P1909买铅笔:枚举模拟。
- P3954成绩:简单计算。
二、CSP-S 题单(70 题)
以下题单覆盖 CSP-S 常考知识点,难度递进,适合冲击提高组。
1. 基础算法与复杂度(5 题)
- P3378【模板】堆:堆操作入门。
- P3371【模板】单源最短路径:Dijkstra 模板。
- P4779【模板】单源最短路径(标准版):堆优化 Dijkstra。
- P3385【模板】负环:SPFA 判负环。
- P3366【模板】最小生成树:Kruskal 模板。
2. 数据结构(8 题)
- P3372【模板】线段树 1:线段树区间修改查询。
- P3373【模板】线段树 2:线段树多标记。
- P3368【模板】树状数组 2:树状数组区间修改。
- P3865【模板】ST 表:RMQ 问题。
- P1886滑动窗口:单调队列。
- P5788【模板】单调栈:单调栈应用。
- P3401树链剖分:树链剖分入门。
- P3380【模板】二逼平衡树:树套树。
3. 图论(10 题)
- P3379【模板】最近公共祖先:LCA 倍增。
- P3387【模板】缩点:Tarjan 强连通分量。
- P3388【模板】割点:Tarjan 割点。
- P1656炸铁路:割边。
- P1345奶牛的电信:最小割。
- P2763试题库问题:网络流建模。
- P3376【模板】网络最大流:Dinic 模板。
- P3381【模板】最小费用最大流:费用流。
- P1144最短路计数:最短路变式。
- P1629邮递员送信:多源最短路。
4. 动态规划(12 题)
- P1216数字三角形:DP 入门。
- P1048采药:0-1 背包。
- P1616疯狂的采药:完全背包。
- P1060开心的金明:背包变式。
- P1064金明的预算方案:依赖背包。
- P1541乌龟棋:多维 DP。
- P1439最长公共子序列:LCS 优化。
- P1020导弹拦截:LIS 与贪心。
- P1880石子合并:区间 DP。
- P1063能量项链:环形区间 DP。
- P1896互不侵犯:状压 DP。
- P2704炮兵阵地:状压 DP 进阶。
5. 数论(8 题)
- P3383【模板】线性筛素数:欧拉筛。
- P3811【模板】乘法逆元:逆元求解。
- P4549【模板】裴蜀定理:数论定理。
- P1082同余方程:扩展欧几里得。
- P2613有理数取模:模运算。
- P2158仪仗队:欧拉函数。
- P2568GCD:欧拉函数应用。
- P4139上帝与集合的正确用法:欧拉降幂。
6. 字符串(6 题)
- P3370【模板】字符串哈希:哈希入门。
- P3805【模板】manacher:回文串。
- P3808【模板】AC 自动机:多模式匹配。
- P3375【模板】KMP:KMP 匹配。
- P5829【模板】失配树:KMP 进阶。
- P4551最长异或路径:Trie 树。
7. 计算几何(4 题)
- P1452Beauty Contest:凸包。
- P2742圈奶牛:凸包模板。
- P3829信用卡凸包:凸包变式。
- P4166最大三角形:旋转卡壳。
8. 分治与倍增(5 题)
- P1903数颜色:带修莫队。
- P1496火烧赤壁:离散化。
- P1966火柴排队:逆序对。
- P1908逆序对:归并排序。
- P1967货车运输:倍增 LCA。
9. 贪心与构造(6 题)
- P1080国王游戏:贪心排序。
- P2123皇后游戏:贪心证明。
- P4053建筑抢修:贪心堆。
- P2949工作调度:贪心堆。
- P3620数据备份:贪心链表。
- P4052文本生成器:AC 自动机 DP。
10. 综合难题(6 题)
- P3953逛公园:图论 DP。
- P3959宝藏:状压 DP 搜索。
- P3960列队:平衡树。
- P5020货币系统:背包与数论。
- P5021赛道修建:二分答案。
- P5022旅行:基环树。
三、刷题建议
建议按知识点分块刷题,每块先做模板题,再做变式题。CSP-J 题单打牢基础后,再进入 CSP-S 题单逐步提升。每道题做完后及时总结错误原因和算法思路,形成自己的解题笔记。