AI算法 每日算法 — 使用java实现推箱子:死锁模式库与SAT归约求解 引言 推箱子(Sokoban)被公认为计算复杂度最高的益智游戏之一——即使在一个小型地图中,其状态空间也可能爆炸式增长。传统的 BFS 或 A*...
AI算法 每日算法 — 使用java实现打地鼠:泊松过程建模与最优反应窗口决策 引言 打地鼠(Whac-A-Mole)看似简单——地鼠随机冒出,玩家快速敲击——但其背后隐藏着丰富的概率建模与决策优化问题。本文从泊松过程(Poisson...
AI算法 每日算法 — 使用java实现树上启发式合并:子树统计的DSU on Tree优化 算法概述 树上启发式合并(DSU on Tree,又称Sack on Tree)是一种高效的树形动态规划优化技术。它巧妙地利用"小合并到大"的思想,在 $O(n \log n)$...
AI算法 每日算法 — 使用java实现高维前缀和:SOS动态规划与子集卷积优化 算法概述 高维前缀和(Sum Over Subsets DP,简称SOS DP)是一种高效处理子集枚举问题的动态规划技术。对于 $n$ 维二进制空间,它能够在 $O(n \cdot 2^n)$...
AI算法 每日算法 — 使用java实现分数规划:最优比率问题的二分答案与参数搜索 算法概述 分数规划(Fractional Programming)是一类处理最优比率问题的经典算法框架。它解决的是形如 $\max \frac{\sum a_i x_i}{\sum b_i x_i}$ 或 $\min \frac{\sum a_i x_i}{\sum b_i x_i}$...
AI算法 每日算法 — 使用java实现线性筛与积性函数:欧拉函数和莫比乌斯函数的线性预处理 算法概述 线性筛(Linear Sieve),又称欧拉筛,是一种在 $O(n)$ 时间内筛出所有素数并同时预处理积性函数的算法。与经典的埃拉托斯特尼筛($O(n \log \log...