# OneCoder 技术与信奥算法知识库 (coderli.com) > OneCoder(李宏哲)独立技术博客,始于 2012 年,累计沉淀 1021+ 篇原创技术文章。核心聚焦:CCF GESP C++ 编程能力等级认证(1~8级)考纲微知识点精讲与历年真题题解、CSP-J/S 与 NOIP 信息学奥赛算法推导、Java 服务端架构演进(Spring / Netty / JVM / 日志体系)以及 Python 数据工程实战。所有 C++ 题解代码严格遵循 C++11 标准与考场实战规范。 ## 权威导航与关联生态 (Core Hubs & Ecosystem) - [OneCoder 博客首页](https://www.coderli.com/): 最新技术文章与信奥考点精讲更新流 - [全站博文归档总目录](https://www.coderli.com/archives/): 2012 年至今全部 1021 篇文章静态索引 - [GESP C++ 1-8级考级专栏](https://www.coderli.com/topics/gesp/): 覆盖一级至八级考纲考点拆解、易错陷阱与洛谷/官方真题题解 - [CSP-J/S & NOIP 信奥竞赛专栏](https://www.coderli.com/topics/csp/): 初赛客观题/阅读程序考点与复赛算法真题推导 - [算法与数据结构专题](https://www.coderli.com/topics/algo/): 排序、二分、前缀和差分、DFS/BFS搜索、动态规划与图论 - [Java 架构演进专栏](https://www.coderli.com/topics/java/): Netty 网络通信、Spring 生态、并发编程与架构设计 - [Python 与数据工程专栏](https://www.coderli.com/topics/python-data/): Python 工具链、MySQL/PostgreSQL 与大数据实战 - [GESP / CSP 体系化知识百科 (Wiki)](https://wiki.coderli.com/): 按等级结构化编排的 GESP/CSP/NOIP 知识库 - [OneCoder 信奥远征互动闯关平台](https://oi.coderli.com/): GESP 1-8级 240 关在线训练、考纲心法与全真模考系统 - [全量知识目录 (LLMs Full Index)](https://www.coderli.com/llms-full.txt): 包含全站所有 1021 篇文章的完整标题、URL 与摘要清单 - [RSS 订阅源](https://www.coderli.com/rss.xml): 最新 50 篇文章标准 RSS 2.0 增量源 ## 核心置顶与高频参考指南 (Featured Guides) - [【置顶】【GESP】C++ 认证学习资源汇总(26年9月17日更新)](https://www.coderli.com/gesp-resource-summary/): 本置顶将汇总本站发布的GESP认证考试相关资源,并进行了分类整理,不定期更新。 GESP资源专项站,Wiki式阅读,专项学习更友好: GESP资源专项站 所有源代码详见C++ 学习项目:yummy-code(https://github.com/lihongzheshu... ## 最新更新文章 (Latest 50 Articles) - [【GESP/CSP考点精讲】GESP五级 / CSP-J 必背:快速排序(Quick Sort)基准划分原理、不稳定性与 O(n^2) 退化陷阱](https://www.coderli.com/gesp-5-knowledge-quick-sort-partition/) (2026-11-15): 为什么在工程实践与算法竞赛中,快速排序(Quick Sort) 无需像归并排序那样额外开辟长度为 n 的辅助数组 tmp[],就能以极小的常数因子跑出 O(n log n) 的飞快速度,稳坐“通用原地排序之王”的宝座;可一旦某个同学手写快排时图省事固定挑选区间首元素 a... - [【GESP/CSP考点精讲】GESP五级 / CSP-J 必背:分治思想与归并排序(Merge Sort)——顺手秒杀“逆序对”统计](https://www.coderli.com/gesp-5-knowledge-divide-conquer-merge-sort/) (2026-11-14): 当题目给出的数据规模从 n = 1000 跃升到 n = 10^5 时,无论是冒泡排序、直接插入排序,还是用双重 for 循环暴力枚举统计“逆序对”,运算次数都会瞬间飙升至 (n(n-1)/2) ≈ 5 × 10^9 次,在 1 秒时限面前毫无悬念地触发 TLE(运行超... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 必背:排序的“稳定性”到底有什么用?冒泡、选择、插入排序深度辨析](https://www.coderli.com/gesp-4-knowledge-quadratic-sorts-stability/) (2026-11-13): 为什么只给纯整数数组 [5, 3, 5, 2] 排个序,教材和真题却总要喋喋不休地追问“两个 5 排完之后谁在谁前面”?两个一模一样的数字 5 颠倒了顺序,表面上看结果不还是 [2, 3, 5, 5] 吗?然而一旦进入真实教务系统或信奥结构体排序场景——比如教务老师先将... - [【GESP/CSP考点精讲】GESP五级 / CSP-J 必背:从 O(2^n) 到 O(n) 的奇迹——重叠子问题与记忆化搜索](https://www.coderli.com/gesp-5-knowledge-memoization-search/) (2026-11-12): 为什么一段只有 5 行的斐波那契递归代码 return fib(n - 1) + fib(n - 2);,当输入 n = 10 时瞬间出解,一旦输入 n = 45 就会触发超过 22 亿次函数调用,把评测机死死卡在 TLE(运行超时)?更神奇的是,为什么在不改变递归主体... - [【GESP/CSP考点精讲】GESP四级/五级 / CSP-J 必背:递推 vs 递归——如何手画“递归调用树”秒杀初赛阅读程序题?](https://www.coderli.com/gesp-5-knowledge-iteration-vs-recursion-stack/) (2026-11-11): 为什么在考场上遇到一句看似简单的 return f(n - 1) + f(n - 2);,有些同学在脑子里绕了三层就彻底“死机”,完全算不清函数到底被调用了多少次?为什么仅仅把 cout << n; 放在递归调用语句的前面和后面,打印出来的数字顺序就会发生天翻地覆的“逆... - [【GESP/CSP考点精讲】GESP四级/五级 / CSP-J 必背:如何根据数据范围 N 反推算法?时间与空间复杂度估算实战](https://www.coderli.com/gesp-4-knowledge-time-space-complexity/) (2026-11-10): 为什么在考场上拿到一道题,有经验的高手还没读完题面,仅仅扫了一眼最下方的“数据范围:对于 100% 的数据,1 ≤ N ≤ 10^5”,就能在 3 秒内断言:“这题绝对不能写双重循环冒泡排序,必须用 O(N log N) 的归并/快排或二分查找”?为什么你的代码逻辑在本... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 复赛必背:freopen 文件重定向标准写法与考场 0 分爆零避坑指南](https://www.coderli.com/gesp-4-knowledge-file-io-freopen/) (2026-11-09): 为什么每年 CSP-J/S 第二轮复赛成绩公布后,总有一大批平时模拟赛能拿二三百高分的选手,打开成绩单却看到刺眼的 4 题全 0 分(爆零)?为什么你的算法逻辑完美无缺、本地小样例全过,仅仅因为在交卷前忘记删掉 // freopen("apple.in", "r", s... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 必背:结构体多关键字排序与 std::sort 自定义 cmp 的“严格弱序”铁律](https://www.coderli.com/gesp-4-knowledge-struct-custom-cmp/) (2026-11-08): 为什么在 C++ 中定义一个包含 char c1; int x; char c2; 三个成员的结构体(1 + 4 + 1 = 6 字节),用 sizeof 测出来的内存体积却是 12 字节,而仅仅把 int x 挪到第一行变成 int x; char c1; char... - [【GESP/CSP考点精讲】GESP三级/四级 / CSP-J 必背:字符数组结束符 '\0' 陷阱与 strlen 放循环条件导致的超时惨案](https://www.coderli.com/gesp-3-knowledge-cstring-vs-std-string/) (2026-11-07): 为什么在 C++ 中写下 char a[] = "GESP"; 和 char b[] = {'G', 'E', 'S', 'P'};,明明看起来都是 4 个字母,用 sizeof(a) 测出来是 5,而 sizeof(b) 却是 4?更可怕的是,如果对 b 调用 str... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 必背:一张内存图看懂值传递、指针传递与引用传递(&)的本质区别](https://www.coderli.com/gesp-4-knowledge-parameter-passing/) (2026-11-06): 为什么刚学函数的同学写下 void myswap(int x, int y) { int t = x; x = y; y = t; },在 myswap 函数内部明明看到 x 和 y 的值已经互换成功,可一旦退回 main 函数打印实参 a 和 b,它们却纹丝不动?为什... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 必背:指针到底是什么?为什么 int *p 执行 p+1 地址加了 4 而不是 1?](https://www.coderli.com/gesp-4-knowledge-pointer-arithmetic/) (2026-11-05): 为什么在 C++ 中定义一个整型指针 int p = &a[0];(假设起始地址为 0x1000),当我们对它执行看似最简单的加法 p = p + 1; 时,指针里存放的内存地址并没有变成 0x1001,而是直接跳到了 0x1004?更让人不可思议的是,如果另一个指针... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 必背:二维数组的“行优先”线性存储原理与初赛内存地址秒算公式](https://www.coderli.com/gesp-4-knowledge-2d-array-row-major/) (2026-11-04): 为什么我们在纸上画二维数组 int a[3][4]; 时,它明明是一张 3 行 4 列的二维网格表,但在计算机物理内存(RAM)中,它却被压扁成了一条头尾相接的一维直线?更让人困惑的是,为什么在声明或传参二维数组时,C++ 编译器允许省略第一维行数(如 int a[][... - [【GESP/CSP考点精讲】GESP三级 / CSP-J 必背:数组下标为什么从 0 开始?揭秘连续内存寻址与越界篡改黑洞](https://www.coderli.com/gesp-3-knowledge-array-memory-out-of-bounds/) (2026-11-03): 为什么在 C++ 语言中声明一个长度为 10 的一维数组 int a[10];,合法的下标范围却是 a[0] 到 a[9],一旦访问 a[10] 就会引发难以排查的 Bug?更让人百思不得其解的是,为什么当我们在代码中不小心写出 a[10] = 999; 甚至 a[-1... - [【GESP/CSP考点精讲】GESP四级 / CSP-J 必背:为什么大数组写在 main 里会爆栈 RE,写在外面却全 0 且安全?](https://www.coderli.com/gesp-4-knowledge-memory-segments-scope/) (2026-11-02): 为什么在复赛考场上写出一行 int a[2000005];,如果把它放在 main() 函数内部,程序刚一运行就会直接崩溃报错 Segmentation fault(段错误 / 爆栈 RE),而只要把它挪到 main() 函数外部,不仅瞬间转危为安,而且连 memset... - [【GESP/CSP考点精讲】GESP二级 / CSP-J 必背:逻辑运算符“短路求值”陷阱与运算符优先级避坑表](https://www.coderli.com/gesp-2-knowledge-short-circuit-precedence/) (2026-11-01): 为什么在 C++ 中执行完 int a = 0, b = 5; bool res = (a != 0) && (++b 5); 之后,打印出来的 b 居然还是 5 而不是 6?为什么在复合表达式 (++x == 2) (++y == 2) && (++z == 2) 中... - [【GESP/CSP考点精讲】GESP三级 / CSP-J 必背:左右移位陷阱与 n&(n-1)、n&(-n) 两大位运算魔法](https://www.coderli.com/gesp-3-knowledge-bitwise-magic-lowbit/) (2026-10-31): 为什么在 C++ 中计算整数除法 -5 / 2 得到的结果是 -2,而将 -5 右移一位 -5 1 算出来的却是 -3?为什么在统计一个大整数的二进制表示中有多少个 1、或者判断一个数是不是 2 的正整数次幂时,高手从来不用 while (n 0) { cnt += n... - [【CSP真题】CSP-J 2026 纸牌游戏 luogu-P17830 | 适用于 GESP六级 / 七级 练习](https://www.coderli.com/csp-j-2026-p17830/) (2026-10-31): CSP-J 2026 第二轮入门组压轴第四题《纸牌游戏》(luogu-P17830),要求对全部 n 个后缀游戏局分别模拟“遇到相同点数则收走该牌及其右侧所有牌”的过程,并统计每种点数最终留在桌面上的局数。本题是一道极具思维美感的不变量洞察 + 线性状态递推(DP)好题... - [【CSP真题】CSP-J 2026 按位与 luogu-P17829 | 适用于 GESP五级 / 六级 练习](https://www.coderli.com/csp-j-2026-p17829/) (2026-10-31): CSP-J 2026 第二轮入门组第三题《按位与》(luogu-P17829),要求从 n 个非负整数中选出恰好 m 个数,使它们的二进制按位与(&)结果最大。本题是经典的二进制按位从高到低贪心试填模型,思路清晰、代码极其精炼,适合 GESP 五级与六级考生练习,难度... - [【CSP真题】CSP-J 2026 回文串 luogu-P17828 | 适用于 GESP四级 / 五级 练习](https://www.coderli.com/csp-j-2026-p17828/) (2026-10-31): CSP-J 2026 第二轮入门组第二题《回文串》(luogu-P17828),给出由 n 段连续相同字符组成的超长字符串(总长可达 2× 10^14),要求计算将其修改为回文串所需的最少字符修改次数。本题核心考查游程编码(RLE)压缩表示下的双指针同步消去技巧,适合... - [【CSP真题】CSP-J 2026 旅游 luogu-P17827 | 适用于 GESP二级 / 三级 练习](https://www.coderli.com/csp-j-2026-p17827/) (2026-10-31): CSP-J 2026 第二轮入门组第一题《旅游》(luogu-P17827),围绕高铁二等座车厢号、排号与过道两侧座位字母(A、B、C 与 D、F)的拆解判定展开,重点考查字符串下标访问、子串截取与多层条件分支逻辑,适合 GESP 二级与三级考生练习,难度 ⭐☆☆☆☆,... - [【GESP/CSP考点精讲】GESP三级 / CSP-J 必背:位运算(&、|、^、~)底层逻辑与异或消去律实战](https://www.coderli.com/gesp-3-knowledge-bitwise-operators/) (2026-10-30): 为什么在 C++ 中计算按位取反 5,程序输出的结果不是 0 也不是 -5,而是一个让人摸不着头脑的 -6?为什么面对一千万个整数、要求在禁止使用数组(仅限 O(1) 额外内存)的严苛条件下找出唯一落单的那个数字时,仅仅靠一个异或符号 ^ 就能在几行代码内瞬间秒杀?在... - [【GESP/CSP考点精讲】GESP二级 / CSP-J 必背:ASCII 码表的隐藏规律与字符算术转换技巧](https://www.coderli.com/gesp-2-knowledge-ascii-char-arithmetic/) (2026-10-29): 为什么在 C++ 中把字符 '5' 直接赋给整型变量 int a = '5';,输出的居然是 53 而不是 5?为什么小写字母 'a' 的编码(97)反而比大写字母 'A' 的编码(65)大了整整 32?在 GESP 二级认证客观题以及 CSP-J 初赛阅读程序与复赛字... - [【GESP/CSP考点精讲】GESP三级 / CSP-J 必背:为什么 0.1+0.2≠0.3?十进制小数转二进制与 double 判等规范](https://www.coderli.com/gesp-3-knowledge-floating-point-precision/) (2026-10-28): 为什么在 C++ 中写下最简单的条件判断 if (0.1 + 0.2 == 0.3),程序运行的结果竟然是 false(假)?为什么十进制里短短一位的有限小数 0.1,放进计算机内存后却变成了一串永远写不完的二进制无限循环小数?在 GESP 三级认证客观题以及 CSP-... - [【GESP/CSP考点精讲】GESP二级 / CSP-J 必背:解密“爆 int”环形溢出与 1LL 类型提升的底层原理](https://www.coderli.com/gesp-2-knowledge-integer-overflow-promotion/) (2026-10-27): 为什么在 C++ 中明明把接收结果的变量定义成了 64 位长整型 long long ans = a b;,当 a = 100000、b = 100000 时,算出来的结果却依然是一个莫名其妙的负数或截断错值 1410065408?为什么一个很大的正整数加 1 后会瞬间... - [【GESP/CSP考点精讲】GESP三级 / CSP-J 必背:原码、反码与补码——为什么 int 最小值是 -2147483648?](https://www.coderli.com/gesp-3-knowledge-twos-complement/) (2026-10-26): 为什么 8 位有符号整数(signed char)的取值范围是 -128 127,而不是对称的 -127 127?为什么 32 位 int 的最大值是 2147483647,而最小值却能多出一个,达到 -2147483648?在 GESP 三级认证与 CSP-J 初赛(... - [【GESP/CSP考点精讲】GESP三级 / CSP-J 必背:进制的本质与按权展开秒算技巧](https://www.coderli.com/gesp-3-knowledge-day01-number-base-conversion/) (2026-10-25): 为什么人类习惯用“满十进一”的十进制计数,而现代电子计算机的底层却偏偏只认 0 和 1 组成的二进制?在 GESP 三级认证与 CSP-J 初赛(第一轮)的客观题中,二进制、八进制、十进制与十六进制之间的混合运算与极速转换是每年雷打不动的必考基石。许多同学在考场上遇到诸... - [【GESP/CSP练习】GESP六级 / CSP-J 题解:luogu-P1596 [USACO10OCT] Lake Counting S](https://www.coderli.com/gesp-6-luogu-p1596/) (2026-10-24): 在 N × M(1 ≤ N, M ≤ 100)的矩形田地网格中,统计由积水字符 'W' 按八个相邻方向(上、下、左、右及四个对角线方向)相互连接所形成的水塘总数,洛谷 P1596「[USACO10OCT] Lake Counting S」是网格图连通块计数与洪水填充(F... - [【GESP/CSP练习】GESP六级 / CSP-J 题解:luogu-P1162 填涂颜色](https://www.coderli.com/gesp-6-luogu-p1162/) (2026-10-23): 在一个由 0 和 1 构成的 n × n(1 ≤ n ≤ 30)方阵中,将由 1 围成的任意形状闭合圈内部的所有 0 替换为 2,洛谷 P1162「填涂颜色」是引导信奥选手掌握连通块染色(洪水填充 Flood Fill)与正难则反逆向搜索思维的教科书级经典题。初学者面对... - [【GESP/CSP练习】GESP五级 / CSP-J 题解:luogu-P1605 迷宫](https://www.coderli.com/gesp-5-luogu-p1605/) (2026-10-22): 在一个 N × M(N, M ≤ 5)且散布着 T 处障碍的网格迷宫中,统计从起点到终点且每个方格最多经过一次的不同路径总数,洛谷 P1605「迷宫」是引领信奥选手从基础枚举迈向网格图深度优先搜索(DFS)与状态回溯(Backtracking)的标志性启蒙题。与求“最短... - [【NOIP真题】2003 乒乓球 luogu-P1042 | 适用于 GESP五级 / CSP-J 练习](https://www.coderli.com/noip-2003-luogu-p1042/) (2026-10-21): 将一串连续的乒乓球胜负记录分别按 11 分制与 21 分制还原出每一局的比分,洛谷 P1042「[NOIP 2003 普及组] 乒乓球」看似只是最基础的加分计数,实则是信奥赛场上检验“真实赛制规则建模与极端边界防御”的经典试金石。许多初学者在写这道题时频频痛失满分(只拿... - [【GESP/CSP练习】GESP五级 / CSP-J 题解:luogu-P1803 凌乱的yyy / 线段覆盖](https://www.coderli.com/gesp-5-luogu-p1803/) (2026-10-20): 在一条有限的时间轴上面对 n(n ≤ 10^6)场起止时间各异的比赛,要求从中选出互不重叠的最多场次,初学者最容易掉入两个直觉陷阱:要么优先挑选“开始时间最早”的比赛(却可能被一场从早持续到晚的马拉松赛事霸占整条时间轴),要么优先挑选“持续时间最短”的比赛(却可能因为一... - [【NOIP真题】2007 纪念品分组 luogu-P1094 | 适用于 GESP五级 / CSP-J 练习](https://www.coderli.com/noip-2007-luogu-p1094/) (2026-10-19): 在容量上限固定为 w 的礼袋中装载 n(n ≤ 3 × 10^4)件纪念品,若仅限制总价值不超过 w 而对件数无要求,这便是一个 NP-Hard 的经典装箱问题(Bin Packing Problem);然而,洛谷 P1094「[NOIP2007 普及组] 纪念品分组」... - [【GESP/CSP练习】GESP五级 / CSP-J 题解:luogu-P3383 【模板】线性筛素数](https://www.coderli.com/gesp-5-luogu-p3383/) (2026-10-18): 当质数筛查的范围推升至 n = 10^8,且需要在极短时限内连续响应多达 q = 10^6 次“第 k 小素数”的随机询问时,单点 O(√(x)) 试除法早已无力招架,甚至连经典的埃拉托斯特尼筛法(埃氏筛)也会因为像 30 = 2 × 15 = 3 × 10 = 5 ×... - [【NOIP真题】1998 拼数 luogu-P1012 | 适用于 GESP四级 / CSP-J 练习](https://www.coderli.com/noip-1998-luogu-p1012/) (2026-10-17): 将 n 个正整数首尾相接拼成一个尽可能大的整数,表面上看似乎只需将数字“从大到小”排列,实则暗藏两重极易踩中的经典陷阱:第一,多达 20 个不超过 10^9 的正整数拼接后总位数最高可达 200 位,远超 64 位整型 unsigned long long 的表示极限,... - [【NOIP真题】2002 选数 luogu-P1036 | 适用于 GESP四级 / CSP-J 练习](https://www.coderli.com/noip-2002-luogu-p1036/) (2026-10-16): 在给定 n 个正整数中任选 k 个数求和并统计其中素数的个数,这一经典问题将“动态层数的组合枚举”与“单点素数判定”两大基础算法无缝融合。与直接枚举 1 n 自然数(如 P1157 组合的输出)不同,洛谷 P1036「[NOIP2002 普及组] 选数」中的待选元素存储... - [【GESP/CSP练习】GESP四级 / CSP-J 题解:luogu-P1157 组合的输出](https://www.coderli.com/gesp-4-luogu-p1157/) (2026-10-15): 当从 n 个元素中抽取固定数量(如 3 个)元素时,初学者往往习惯直接编写三层嵌套的 for 循环完成暴力枚举;然而一旦抽取个数 r 是由输入动态决定的变量(0 ≤ r ≤ n 库中 setw(3) 的场宽对齐控制,能够以零冗余的搜索路径高效生成全部 \binom{n}... - [【NOIP真题】2009 分数线划定 luogu-P1068 | 适用于 GESP四级 / CSP-J 练习](https://www.coderli.com/noip-2009-luogu-p1068/) (2026-10-14): 洛谷经典算法真题 P1068「[NOIP2009 普及组] 分数线划定」,以世博会志愿者选拔笔试为现实场景,是信息学竞赛中考查“结构体建模(struct)”、“多关键字自定义排序”以及“实际业务规则模拟(按比例划线与重分入围)”的标志性基础试题。本题完美契合 CCF G... - [【GESP/CSP练习】GESP四级 / CSP-J 题解:luogu-P1104 生日](https://www.coderli.com/gesp-4-luogu-p1104/) (2026-10-13): 在信息学奥林匹克竞赛中,处理包含多维度关联信息的数据集合并对其进行有序化重组,是考查选手算法设计与数据建模能力的核心基石。洛谷 P1104「生日」作为考查多关键字排序的经典入门试题,完美契合 CCF GESP 四级(结构体建模、多关键字排序规则设计)与 CSP-J 普及... - [【GESP/CSP练习】GESP八级 / CSP-S 题解:luogu-P3388 【模板】割点(割顶)](https://www.coderli.com/gesp-8-luogu-p3388/) (2026-10-12): 在网络拓扑与通信基础设施分析中,评估图的联通健壮性与识别单点故障(Single Point of Failure, SPOF)是核心课题。对于给定的无向图 G = (V, E),若移去某顶点 u 及其关联的所有边后,图的连通分量数严格增加,则称顶点 u 为图的一个割点(... - [【NOIP真题】2011 统计单词数 luogu-P1308 | 适用于 GESP三级 / CSP-J 练习](https://www.coderli.com/noip-2011-luogu-p1308/) (2026-10-11): 洛谷经典真题 P1308「[NOIP2011 普及组] 统计单词数」,是全国青少年信息学奥林匹克联赛中极具代表性的字符串处理经典范例,同时也是 CCF GESP 三级(字符串基础操作与字符数组)和 CSP-J 普及组初学阶段必刷的算法基石。题目的核心诉求是模拟现代文本编... - [【NOIP真题】2006 明明的随机数 luogu-P1059 | 适用于 GESP四级 / CSP-J 练习](https://www.coderli.com/noip-2006-luogu-p1059/) (2026-10-11): 洛谷经典算法真题 P1059「[NOIP2006 普及组] 明明的随机数」,是信息学竞赛中几乎所有初学者接触“数据去重与排序”业务场景时的经典启蒙之作。本题完美契合 CCF GESP 四级考纲(基础排序、线性表操作与标记思想)以及 CSP-J 普及组入门练习。题目的核心... - [【GESP/CSP练习】GESP八级 / CSP-S 题解:luogu-P3375 【模板】KMP](https://www.coderli.com/gesp-8-luogu-p3375/) (2026-10-11): 在单模式串匹配(Single String Pattern Matching)问题中,判断一个长度为 m 的目标模式串 s2 是否在长度为 n 的主串 s1 中出现并找出所有匹配位置,是计算机科学与算法竞赛中最基础且核心的课题之一。朴素的暴力匹配(Brute-force... - [【GESP/CSP练习】GESP八级 / CSP-S 题解:luogu-P3372 【模板】线段树 1](https://www.coderli.com/gesp-8-luogu-p3372/) (2026-10-10): 在序列维护与动态区间统计问题中,同时支持「区间批量增量修改」与「区间任意求和查询」是高阶算法竞赛的核心分水岭:朴素静态数组在进行区间 [x, y] 逐项累加时单次开销高达 O(n),多次操作会导致严重超时;静态前缀和数组虽能以 O(1) 实现区间求和,但在区间修改后需重... - [【GESP/CSP练习】GESP八级 / CSP-S 题解:luogu-P3368 【模板】树状数组 2](https://www.coderli.com/gesp-8-luogu-p3368/) (2026-10-09): 在序列维护与动态统计问题中,区间修改与单点查询是一对经典的操作矛盾:朴素数组方案虽然能够以 O(1) 的高速常数读取任意单个位置的数值,但在面对区间 [x, y] 的批量累加修改时,必须逐个遍历修改区间内的每个元素,单次操作开销高达 O(n);若直接套用标准树状数组(B... - [【GESP/CSP练习】GESP八级 / CSP-S 题解:luogu-P3374 【模板】树状数组 1](https://www.coderli.com/gesp-8-luogu-p3374/) (2026-10-08): 在序列维护与区间统计问题中,单点动态修改与区间和查询是一对经典而基础的矛盾操作:静态前缀和虽然能支持 O(1) 的高速区间查询,但在面对单点修改时需要重构后续所有前缀和,单次更新开销高达 O(n);普通数组虽具备 O(1) 的原地单点写入效率,但任意区间的求和却退化为... - [【GESP/CSP练习】GESP七级 / CSP-S 题解:luogu-P3379 【模板】最近公共祖先(LCA)](https://www.coderli.com/gesp-7-luogu-p3379/) (2026-10-07): 树结构作为非线性数据结构的核心代表,任意两个节点之间的拓扑亲缘关系判定是图论与树算法的基石。洛谷 P3379「【模板】最近公共祖先(LCA)」是 CCF GESP 七级与 CSP-S 组别中最基础且最重要的经典模板题之一。题目要求在一棵具有 N 个节点且以 S 为根的有... - [【NOIP真题】2008 没有上司的舞会 luogu-P1352 | 适用于 GESP七级 / CSP-S 练习](https://www.coderli.com/gesp-7-luogu-p1352/) (2026-10-06): 在层级森严的树形组织架构中,上级与下属之间往往存在着天然的排他约束。洛谷 P1352「[NOIP2008 提高组] 没有上司的舞会」作为全国青少年信息学奥林匹克联赛(NOIP)与计算机学会认证(CCF GESP 七级、CSP-S 组)中最具标志性的经典树形动态规划(Tr... - [【GESP/CSP练习】GESP七级 / CSP-S 题解:luogu-P1880 [NOI1995] 石子合并](https://www.coderli.com/gesp-7-luogu-p1880/) (2026-10-05): 在环形序列合并优化中,相邻堆合并的顺序直接决定了中间产物与累加得分的演化。洛谷 P1880「[NOI1995] 石子合并」作为全国青少年信息学奥林匹克竞赛(NOI)经典里程碑题,同时也是 CCF GESP 七级考纲(区间动态规划、环形结构破环成链、最值优化)与 CSP-... - [【GESP/CSP练习】GESP七级 / CSP-S 题解:luogu-P3366 【模板】最小生成树](https://www.coderli.com/gesp-7-luogu-p3366/) (2026-10-04): 在通信基站管网布线、电力网架设以及交通枢纽规划等重大工程中,如何在保证所有节点相互连通的前提下,使铺设线路的总建设开销(边权之和)达到全局最小,是经典的最小生成树(Minimum Spanning Tree, MST)离散优化问题。洛谷 P3366「【模板】最小生成树」... - [【GESP/CSP练习】GESP七级 / CSP-S 题解:luogu-P3371 【模板】单源最短路径(弱化版)](https://www.coderli.com/gesp-7-luogu-p3371/) (2026-10-03): 在交通网络寻径、物流供应链调度与通信路由协议中,求解从指定始发枢纽到网络中所有连通节点的最优开销,是离散优化与图论的核心基石。洛谷 P3371「【模板】单源最短路径(弱化版)」给出了非负权有向图单源最短路径(Single-Source Shortest Path, SS...