椰程信奥

海南科技特长生
添加微信进群聊 微信扫码添加好友
归并排序怎么数逆序对?—— 合并时 count += mid - i + 1 的由来

归并排序怎么数逆序对?—— 合并时 count += mid - i + 1 的由来

2026-09-13

归并排序求逆序对:合并阶段 a[i]>a[j] 时 count += mid - i + 1,因为左边剩余全部元素都与 a[j] 构成逆序对。附合并阶段图解、选项逐项排除、复杂度与溢...

快速选择第 k 大:else 分支该往哪边递归?

快速选择第 k 大:else 分支该往哪边递归?

2026-09-13

快速选择算法求第 k 大:else 分支应返回 quickSelect(a, i+1, right, k),去右半边继续找,k 保持不变。附划分过程图解、三种递归情况、选项逐项排除与...

并查集的 find 那行空填什么?—— 路径压缩把长链压成一层

并查集的 find 那行空填什么?—— 路径压缩把长链压成一层

2026-09-13

并查集 find 程序填空:横线填 find(parent[x]),即路径压缩。附压缩前后结构对比图(长链变星形)、选项逐项排除、按秩合并配套代码、复杂度表格与 CSP 考点总结。

最大子段和的 O(n) 解法 —— Kadane 算法

最大子段和的 O(n) 解法 —— Kadane 算法

2026-09-13

最大子段和 Kadane 算法程序填空:横线填 currentSum + a[i],与 a[i] 取大表示“另起炉灶 vs 接着续”。附扫描柱形图解、9 步模拟表、初始化全负陷阱、复...

BFS 为什么能求最短路?—— dist[v] = dist[u] + 1 与分层思想

BFS 为什么能求最短路?—— dist[v] = dist[u] + 1 与分层思想

2026-09-13

BFS 程序填空:dist[v] = dist[u] + 1。附 BFS 分层扩散图解(0~3 层 dist 递增)、选项逐项排除、队列过程模拟表、BFS 等价无权图最短路的原理、复...

快排的 partition 中 Lomuto 划分与 i+1 的由来

快排的 partition 中 Lomuto 划分与 i+1 的由来

2026-09-13

快排 Lomuto 划分的程序填空:横线处填 swap(a[i+1], a[right]),返回 i+1。附不变量分析、划分前后图解、递归调用要点(p 不参与递归)与复杂度、CSP ...

阅读程序题 40 分怎么拿满?—— 「手动模拟」三步法(含递归完整推演)

阅读程序题 40 分怎么拿满?—— 「手动模拟」三步法(含递归完整推演)

2026-09-13

CSP 初赛阅读程序题占 40 分,失分主因不是不会写代码,而是在脑子里算错了。本文给出「手动模拟三步法」:30 秒定功能 → 画变量表/调用栈逐行记录 → 回表查答案,并完整推演 ...

n = 27 的 3n+1 循环要转多少圈?—— 冰雹数的忽上忽下

n = 27 的 3n+1 循环要转多少圈?—— 冰雹数的忽上忽下

2026-09-11

27 的 3n+1 序列(Collatz/冰雹数):打印 111 个数,从 82 到 1,峰值 9232。附完整轨迹折线图(蓝点奇数步上升、绿点偶数步下降)、手算模拟、死循环风险分析...

a << 2 | 1 到底先算谁?—— 位运算优先级的一个坑

a << 2 | 1 到底先算谁?—— 位运算优先级的一个坑

2026-09-11

a=3 时 (a << 2 | 1) 输出 13:<< 优先级高于 |,先左移 2 位得 12,再按位或 1 得 13。附位运算优先级顺序、易错写法对比(a<<(2|1)=24、a<...

n &= (n-1) 到底做了啥?一行代码数出二进制里有几个 1

n &= (n-1) 到底做了啥?一行代码数出二进制里有几个 1

2026-09-11

n &= (n-1) 是 Brian Kernighan 算法,每执行一次清掉最低位的 1,循环次数即二进制中 1 的个数。n=10(1010₂) 输出 2。附模拟过程、原理、复杂度...