AI算法 每日算法 — 使用java实现矩阵树定理:图生成树计数与基尔霍夫定理 引言 对于一个连通无向图,它包含多少棵不同的生成树?这是图论中最经典的问题之一。Cayley公式告诉我们,完全图K_n恰好有 n^(n-2)...
AI算法 每日算法 — 使用java实现Kruskal算法:贪心策略与并查集构建最小生成树 最小生成树(Minimum Spanning Tree, MST)是图论中的经典问题:给定一个带权无向连通图,找出一棵包含所有顶点的树,使得树上所有边的权值之和最小。Kruskal...
AI算法 每日算法 — 使用java实现Tarjan算法:强连通分量与割点割边的高效求解 在图论中,强连通分量(Strongly Connected Component, SCC)是指有向图中任意两个顶点互相可达的最大子图。求解 SCC...
AI算法 每日算法 — 使用java实现ISAP最大流:距离标号与间隙优化 一、ISAP 算法原理 ISAP(Improved Shortest Augmenting Path)是最大流问题的高效算法,由 Ahuja 和 Orlin 在 1990 年代提出。与 Dinic 算法的分层图+BFS多路增广不同,ISAP...
AI算法 每日算法 — 使用java实现三壶谜题:BFS状态空间搜索与GCD可解性判定 引言 三壶谜题(Water Jug Problem)是数学史上著名的智力题:有三个容量分别为 $a$、$b$、$c$ 升的水壶,其中 $c$ 壶 initially装满水,$a$ 和 $b$...