CSDN编程挑战赛稳进Top10%的7个刷题技巧,最后一个90%的人不知道!
前言这篇文章我把自己从青铜到AK踩过的坑、总结的技巧全部分享出来。全文7000字附可直接套用的代码模板建议收藏后慢慢看。一、先读题 30 秒胜过写码两小时1.1 你真的会读题吗很多同学拿到题就开始写写了一半发现理解错了题意推倒重来 ——时间就这么没的。我的读题三步法步骤做什么关注什么第 1 遍速读搞清楚 输入什么、输出什么数据范围、时间限制第 2 遍精读找出约束条件和坑点恰好、最多、至少第 3 遍验证用样例反推题意边界样例、特殊样例1.2 实战案例看这道题的描述给定一个数组找出和最大的连续子数组返回其最大和。很简单对吧LeetCode 第 53 题经典动态规划。但如果题目改成给定一个数组找出和最大的非空连续子数组返回其最大和。数组长度≥1。有区别吗有。前者隐含了可以选空数组和为 0后者明确了非空。当数组全是负数时答案完全不同。一个词的差别就是 0 分和 100 分的距离。二、数据范围决定算法选型2.1 这是最重要的技巧没有之一比赛时拿到题先看数据范围再想算法。数据范围就是出题人给你的 暗示数据规模可选时间复杂度对应算法n ≤ 20O(2^n)状态压缩、暴力搜索n ≤ 100O(n^3)Floyd、区间 DPn ≤ 1000O(n^2)普通 DP、双循环枚举n ≤ 10^5O(n log n)排序、二分、线段树、堆n ≤ 10^6O(n)贪心、双指针、前缀和n ≤ 10^9O(log n)数学公式、快速幂、矩阵快速幂2.2 举个例子题目求数组中第 K 大的数。n ≤ 100 → 冒泡排序取第 K 个随便写n ≤ 10^5 → 快速排序 O (n log n)能过n ≤ 10^7 → 必须用快速选择 O (n)排序会超时数据范围告诉你该用什么而不是你想用什么就用什么。三、暴力出奇迹先看看能不能过3.1 什么时候暴力是正解很多人看不起暴力解法但比赛里能过的暴力就是好解法。尤其是比赛前两道题数据范围通常很小暴力直接 AC省时省力。判断标准n ≤ 1000 → O (n^2) 暴力大概率能过涉及字符串匹配 → 先试试 O (n*m)不行再上 KMP几何题 → 暴力枚举所有组合比想复杂算法快得多3.2 暴力的正确姿势cpp运行// ❌ 错误写法边算边输出容易超时 for (int i 0; i n; i) { for (int j 0; j n; j) { cout a[i] a[j] endl; } } // ✅ 正确写法关闭同步 批量输出 ios::sync_with_stdio(false); cin.tie(nullptr); // 或者用 printfC 选手记住这两行能救你无数次 TLE。四、前缀和与差分数组题的瑞士军刀4.1 前缀和区间求和 O (1)这是我用得最多的技巧没有之一。模板代码python运行def prefix_sum(arr): n len(arr) pre [0] * (n 1) for i in range(n): pre[i 1] pre[i] arr[i] return pre # 求 arr[l...r] 的和0-based闭区间 def range_sum(pre, l, r): return pre[r 1] - pre[l]适用场景多次区间求和查询子数组和相关问题配合哈希表找 和为 K 的子数组4.2 差分区间更新 O (1)如果题目是 对数组的某个区间统一加上 val差分就是你的朋友。cpp运行// 差分数组 d原数组 a // 区间 [l, r] 加 val d[l] val; d[r 1] - val; // 最后求前缀和还原 for (int i 1; i n; i) { a[i] a[i - 1] d[i]; }经典题型航班预订统计拼车区间加法记住数组题想优化先想前缀和和差分。五、双指针让 O (n^2) 变 O (n) 的魔法5.1 什么时候用双指针满足单调性的问题双指针基本都能上。常见类型类型典型题目核心思想快慢指针环形链表、找中点一个走一步一个走两步左右指针两数之和、盛最多水两端向中间逼近滑动窗口最长无重复子串右指针扩展左指针收缩5.2 滑动窗口模板必背python运行def sliding_window(s): left 0 window {} # 窗口内的状态 result 0 for right in range(len(s)): # 1. 右指针扩展把 s[right] 加入窗口 char s[right] window[char] window.get(char, 0) 1 # 2. 判断是否需要收缩左指针 while 窗口不满足条件: # 3. 左指针收缩把 s[left] 移出窗口 left_char s[left] window[left_char] - 1 if window[left_char] 0: del window[left_char] left 1 # 4. 更新答案 result max(result, right - left 1) return result这个模板能解决 80% 的子串 / 子数组问题最长无重复字符子串最小覆盖子串长度最小的子数组找到字符串中所有字母异位词背下来比赛直接套。六、二分查找不只是 找数6.1 二分的本质单调性判定很多人以为二分只能用来 在有序数组里找某个数太狭隘了。二分的本质是如果一个问题的答案具有单调性满足条件的是连续一段就可以用二分来猜答案。6.2 二分答案模板python运行def binary_search_answer(nums, target): left 最小值 right 最大值 while left right: mid (left right) // 2 if check(mid): # mid 这个答案行不行 right mid # 行试试更小的 else: left mid 1 # 不行得更大 return left6.3 经典应用题目给定一个数组和一个整数 m将数组分成 m 个非空连续子数组使得这 m 个子数组各自和的最大值最小。思路猜一个答案 mid最大子数组和为 mid判断能不能把数组分成不超过 m 段每段和≤mid如果能 → 答案≤mid往小了猜如果不能 → 答案 mid往大了猜python运行def splitArray(nums, m): def check(max_sum): count 1 current 0 for num in nums: if current num max_sum: count 1 current num if count m: return False else: current num return True left max(nums) right sum(nums) while left right: mid (left right) // 2 if check(mid): right mid else: left mid 1 return left最大化最小值、最小化最大值—— 看到这种描述直接二分答案。七、90% 的人不知道的比赛技巧7.1 打表找规律遇到数学题、找规律题想不出公式怎么办暴力打小数据的表然后肉眼找规律。举个例子上楼梯每次可以走 1 步或 2 步问 n 阶楼梯有多少种走法暴力打表n1 → 1 n2 → 2 n3 → 3 n4 → 5 n5 → 8哦这不就是斐波那契数列吗公式直接出来了。比赛里的数学题十有八九可以打表找规律。7.2 对拍调试你的代码过了样例但 WA 了自己又找不到错写一个暴力解法保证正确但可能超时写一个随机数据生成器然后两个程序对拍。# shell 对拍脚本 while true; do python3 generate.py test.in # 生成随机数据 python3 brute.py test.in out1 # 暴力解法正确 python3 solve.py test.in out2 # 你的解法 if diff out1 out2; then echo OK else echo WA! cat test.in # 输出出错的数据 break fi done跑 1000 组数据bug 无所遁形。7.3 骗分技巧实在做不出来别空着能骗一分是一分特殊值骗分题目说 n≥1n1 时答案是什么直接特判输出小规模骗分n≤20 时暴力大数据随便输出个值样例输出实在不会把样例输出写上万一测试用例就是样例呢比赛排名有时候就差那 5 分、10 分。八、比赛时间分配策略8.1 两小时比赛怎么分配时间做什么目标0-10 分钟通读所有题目标记难度确定做题顺序10-40 分钟做签到题 简单题先把稳拿的分拿到40-90 分钟攻克中等题核心得分点90-110 分钟难题骗分 检查能拿多少拿多少最后 10 分钟检查提交别因为低级错误丢分8.2 关键原则先易后难不要死磕一道题卡住了先跳每道题最多想 20 分钟想不出来就先放放提交前检查数组开够了吗long long 了吗多组数据初始化了吗九、推荐刷题路线最后给大家一个从入门到比赛获奖的刷题路径第一阶段入门数组、字符串、排序、二分目标比赛前两题稳过题量约 50 道第二阶段进阶DP、贪心、图论基础、数据结构目标中等题能做出来题量约 150 道第三阶段高阶高级数据结构、数论、网络流、计算几何目标冲击排行榜题量300 道 刷题平台推荐LeetCode基础、Codeforces比赛、洛谷国内题库写在最后编程比赛这东西天赋决定上限努力决定下限。大多数人还没到拼天赋的程度 —— 把基础算法练熟模板背好常见题型一看就有思路进 Top 10% 真的不难。最怕的就是题刷了不少但从不总结每次遇到类似的题还是重新想一遍。收藏这篇文章比赛前翻一翻比你刷 10 道水题有用得多。互动时间你最近参加了什么比赛成绩怎么样有什么想看的算法专题评论区聊聊点赞最高的我下期写如果这篇文章对你有帮助点赞 收藏⭐ 关注三连支持一下下期更新《动态规划从入门到精通10 道经典题带你吃透 DP》

相关新闻

模糊需求到技术实现:需求澄清、技术选型与原型构建实战指南

模糊需求到技术实现:需求澄清、技术选型与原型构建实战指南

1. 从标题看,这更像一个需要澄清的创作主题,而非技术项目 看到这个标题,第一反应是它不像一个标准的技术项目或工具名称。它更像是一个带有特定角色、场景和感官描述的创作主题,可能源自某个游戏或动漫的同人创作、角色扮演&#…

2026/10/24 23:11:19 阅读更多 →
AirPlay 2协议在Windows平台的技术实现与实践

AirPlay 2协议在Windows平台的技术实现与实践

AirPlay 2协议在Windows平台的技术实现与实践 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win AirPlay 2 for Windows项目实现了Apple AirPlay 2协议在Windows操作系统上的完整移植,使得Wind…

2026/10/24 15:57:05 阅读更多 →
鸿蒙+Flutter开发汇率查询器实战指南

鸿蒙+Flutter开发汇率查询器实战指南

1. 为什么选择鸿蒙Flutter开发汇率查询器?跨平台开发已经成为移动应用开发的主流趋势,而鸿蒙(HarmonyOS)和Flutter的结合更是为开发者提供了全新的可能性。我最近用这个技术栈开发了一款汇率查询器,实测下来发现这套组…

2026/10/25 9:03:07 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/25 22:36:10 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/26 4:52:12 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/26 5:00:37 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/26 3:16:46 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 13:21:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →