蒙特卡洛:几何概率估计 π、平方比较与边界等于陷阱
复盘 CSP 202509 第一题《蒙特卡洛》(OJ 满分 100 分)。大数定律与面积比推导、为什么必须比较平方规避 sqrt 浮点性能与精度开销、勾股数 (3, 4) 边界包含等于陷阱,以及 C 语言整除截断排错。
备考 CSP 与刷题练习中积累的算法记录。每篇笔记包含真实的错误复盘、C 语言核心实现节选,以及纯前端可离线运行的动态步进演示,直观展现数据流动与状态跃迁。
复盘 CSP 202509 第一题《蒙特卡洛》(OJ 满分 100 分)。大数定律与面积比推导、为什么必须比较平方规避 sqrt 浮点性能与精度开销、勾股数 (3, 4) 边界包含等于陷阱,以及 C 语言整除截断排错。
复盘 LeetCode 704《二分查找》。闭区间 [left, right] 的严格不变量,为什么循环条件必须为 left <= right,mid 防加法溢出写法,以及边界严格 +1/-1 收缩细节。
复盘 LeetCode 1143《最长公共子序列》。前缀状态对角线转移、C 语言大数组加 static 规避栈溢出崩溃、下标偏移约定与网格反向回溯重构真实子序列。
复盘 LeetCode 300《最长递增子序列》。以 nums[i] 结尾的状态无后效性设计、C 语言局部数组初始化语法陷阱,以及为什么答案必须在全局中取最大值。
复盘 LeetCode 322《零钱兑换》。为什么大面额贪心在此处彻底失效,完全背包正序遍历与 0/1 背包逆序遍历的本质差异,以及初始化极大值陷阱。
复盘 LeetCode 207《课程表》。将先修关系建模为有向图,用 Kahn 算法消解入度推进学习,在队列排空时快速检测闭环死锁。
复盘 LeetCode 307《区域和检索 - 数组可修改》。解析二进制最低位 1 的位运算魔法,对数级单点维护与前缀求和,结构体内存安全管理。
复盘 LeetCode 84 困难题。详解单调递增栈的就近消除原理,为什么矩形宽度不能用累加,以及首尾哨兵如何彻底规避清栈边界特判。
复盘 LeetCode 994。多源 BFS 初始化、队列按层计时的天然边界,以及为什么必须在入队瞬间标记状态,防止重复入队造成死循环。