布丁推荐的CSP-J题单
前言
以下的题目很多都是真题(有CSP或者NOIP标识的),我全部点开看过,简单想了想做法,然后按照获得70分的做法的实现难度分类。
如何理解题目的难度
洛谷上标注的题目的难度是针对获得100分的做法进行评价的,但事实上我们并不需要每道题都获得100分。题目分为很多不同的数据点,包括不同的数据范围还有特殊限制。举个例子:
第一道题,可能它的60分的做法是 $O(n^2)$ 的,写两个嵌套for循环暴力模拟就可以通过。
第二道题,可能它的30分的做法是有特殊条件的,利用这个特殊条件可以利用贪心的策略极度简化这个题目。
第三道题,可能它的10分的做法是 $O(2^n)$ 的,写一个DFS搜索一下各种情况就可以拿到 。
在熟练掌握基础的算法之后,在这套卷子的组合中拿到100分就是很简单的事情。
如何分配自己的时间
因为这个比赛是有部分分的,我们没必要每道题非要做到100分,我们的目标是在最短的时间内拿到性价比最高的分数。举个例子:
第一道题,可能它的60分的做法只需要30分钟,而100分的做法需要写2小时。
第二道题,可能它的30分的做法只需要1小时,而60分的做法需要写3个小时。
第三道题,可能它的10分的做法只需要15分钟,剩下的完全看不懂。
那么我们的策略应该是,**先用1小时做第一道题,然后用1小时做第二道题,最后花15分去特殊处理掉第三道题。**如果还有时间的话我们再回过头去想第一道题的做法。
在J组的考试中,限时3.5小时,不考虑那个白送的入门级送分题,我们按照上面的策略,可以用1小时45分钟拿到额外的100分,已经可以稳拿强省的二等奖了。
如何衡量自己的水平
每道题考察的知识点是不一样的,你掌握的知识点的熟练程度也是不一样的。对于你熟悉的知识点,你可能15分钟就做完了,对于你不熟悉的知识点,你可能90分钟才能做完。下面这些难度的分级都是假设大家都已经足够熟练以后,通过这道题的平均时间来排列的。通过计时,我们可以发现自己相对于同水平的选手的长处和短处在哪里,然后针对性加强自己的短处。
不要因为一两道简单题做不出来就焦虑,也不要因为做出一两道难题而骄傲。
正文
红题(入门)
以下都是入门题,需要全部做对,建议尽量少花费时间。
目标是强省J组三等奖,则平均每道题花费40分钟。
目标是强省J组二等奖,则平均每道题花费20分钟。
目标是强省J组一等奖/强省S组二等奖,则平均每道题花费10分钟。
红题 Level 1
模拟、循环:B2064 斐波那契数列
输入输出、数组:B2058 奥运奖牌计数
模拟、二维数组:P1830 轰炸III
模拟、循环:B2153 求阶乘的和
模拟:P5660 [CSP-J2019] 数字游戏
红题 Level 2
质数、枚举:P1304 哥德巴赫猜想
整除、枚举:P1151 子数整数
试除法、质数(完全平方数才有奇数个因子):P1876 开灯
麻烦的模拟:P2084 进制转换
模拟、处理溢出:P8813 [CSP-J 2022] 乘方
红题 Level3
模拟、贪心:P7071 [CSP-J2020] 优秀的拆分
模拟:P11227 [CSP-J 2024] 扑克牌
橙题(普及-)
解释:弱省的奖项等级自动升一级。
目标是强省J组三等奖,则在每道题花费3小时的前提下,Level 12平均做到5070分,,Level 34平均做到2040分。
目标是强省J组二等奖,则在每道题花费1.5小时的前提下,Level 12全部做对,Level 34平均做到50~70分。
目标是强省J组一等奖/强省S组二等奖,则在每道题花费30分钟的前提下,Level 12全部做对,Level 34平均做到80~100分。
橙题 Level 1
模拟:P1996 约瑟夫问题
模拟:P3955 [NOIP 2017 普及组] 图书管理员
模拟:P1328 [NOIP 2014 提高组] 生活大爆炸版石头剪刀布
枚举:P2038 [NOIP 2014 提高组] 无线网络发射器选址
模拟:P2118 [NOIP 2014 普及组] 比例简化
橙题 Level 2
麻烦的模拟:P1017 [NOIP 2000 提高组] 进制转换
麻烦的模拟:P1014 [NOIP 1999 普及组] Cantor 表
贪心:P1094 [NOIP 2007 普及组] 纪念品分组
多关键字排序:P1093 [NOIP 2007 普及组] 奖学金
枚举:P2010 [NOIP 2016 普及组] 回文日期
找规律、模拟:P9748 [CSP-J 2023] 小苹果
找规律、递归:P5657 [CSP-S2019] 格雷码
橙题 Level 3
非常麻烦的模拟:P1068 [NOIP 2009 普及组] 分数线划定
非常麻烦的模拟:P7072 [CSP-J2020] 直播获奖
动态规划、贪心:P1115 最大子段和
贪心、处理小数:P9749 [CSP-J 2023] 公路
格子图、搜索或模拟:P11228 [CSP-J 2024] 地图探险
搜索、动态规划:P1086 [NOIP 2004 普及组] 花生采摘
DFS、搜索、树的存储:P1030 [NOIP 2001 普及组] 求先序排列
DFS、搜索、组合型枚举:P1036 [NOIP 2002 普及组] 选数
二分:P1024 [NOIP 2001 提高组] 一元三次方程求解
背包:P1060 [NOIP 2006 普及组] 开心的金明
DFS、搜索、递归:P1087 [NOIP 2004 普及组] FBI 树
读题、模拟:P9752 [CSP-S 2023] 密码锁
橙题 Level 4
非常非常麻烦的模拟:P1098 [NOIP 2007 提高组] 字符串的展开
找规律、特判、数学、二分:P8814 [CSP-J 2022] 解密
BFS:P5690 [CSP-S2019 江西] 日期
栈、表达式求值(可能现在已经不考):P1981 [NOIP 2013 普及组] 表达式求值
DFS、搜索:P1149 [NOIP 2008 提高组] 火柴棒等式
贪心:P11231 [CSP-S 2024] 决斗
黄题(普及/提高-)
解释:弱省的奖项等级自动升一级。
目标是强省J组三等奖,则不用看。
目标是强省J组二等奖,则在每道题花费45分钟的前提下,Level 12平均做到3050分,,Level 34平均做到020分。
目标是强省J组一等奖/强省S组二等奖,则在每道题花费1.5小时的前提下,Level 12平均做到6080分,,Level 34平均做到2050分。
黄题 Level 0
这几道题不知道为什么是黄题,难度应该降级。
哈夫曼编码:P1090 [NOIP 2004 提高组] 合并果子
简单模拟:P2239 [NOIP 2014 普及组] 螺旋矩阵
黄题 Level 1
贪心、动态规划:P2196 [NOIP 1996 提高组] 挖地雷
找规律、贪心:P11229 [CSP-J 2024] 小木棍
黄题 Level 2
模拟:P2661 [NOIP 2015 提高组] 信息传递
模拟、差分:P5019 [NOIP 2018 提高组] 铺设道路
连通性、几何(可以搜索):P3958 [NOIP 2017 提高组] 奶酪
DFS、搜索:P1025 [NOIP 2001 提高组] 数的划分
二分、贪心:P4058 [Code+#1] 木材
二分、贪心:P2440 木材加工
二分、贪心:P1843 奶牛晒衣服
二分、贪心:P3853 [TJOI2007] 路标设置
黄题 Level 3
模拟、取模:P5686 [CSP-S2019 江西] 和积和
最短路、取模:P1351 [NOIP 2014 提高组] 联合权值
阅读题目、模拟:P7910 [CSP-J 2021] 插入排序
二分、三分:P11854 [CSP-J2022 山东] 宴会
绿题(普及+/提高)
解释:弱省的奖项等级自动升一级。
目标是强省J组三等奖,则不用看。
目标是强省J组二等奖,则在每道题花费40分钟的前提下,平均做到0~15分。
目标是强省J组一等奖/强省S组二等奖,则在每道题花费20分钟的前提下,平均做到015分;在每道题花费1小时的前提下,则平均做到2060分。
目标是强省S组一等奖,则需要去完整学习S组的知识点,因为只靠J组学习的知识不足以在S组中获得一等奖。
注意:不管你是否在强省,你都没有必要在目标为J组一等奖的情况下,在考试期间考虑绿题超过70分的做法。
绿题
搜索、动态规划:P3956 [NOIP 2017 普及组] 棋盘
BFS、最短路、图论:P5663 [CSP-J2019] 加工零件
哈夫曼编码:P6033 [NOIP 2004 提高组] 合并果子 加强版
模拟、数据结构、链表、并查集:P7912 [CSP-J 2021] 小熊的果篮
模拟、特判、栈、表达式求值(可能现在已经不考):P8815 [CSP-J 2022] 逻辑表达式
读题、模拟、特判、二分:P7075 [CSP-S2020] 儒略日