摘要:
这题与传递闭包有关。 我们将通过传递性推导出尽量多的元素之间的关系的问题叫做传递闭包。 对于一个有向无环图G,它的传递闭包等同于一个在保持与其相同可达性的情况下,边数最多的图。在这个图中,当u可达v的时候,边u → v必定存在。换句话说,每个G中的非相同元素偏序关系对u ≤ v都在这个图中有一条边。 阅读全文
摘要:
Floyd (基于动态规划) dist[i][j]表示从i到j最多经过k点的最小距离。 分为两种情况:经过k和不经过k: 不经过k则为dist[i][j] = dist[i][j]。 经过k则为dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]) 阅读全文
摘要:
gcd(最大公约数) 求解gcd时通常使用的是欧几里得算法(辗转相除法)。 定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。 int gcd(int a, int b) { return b ? gcd(b, a % b) : a; } lcm(最小公倍数) 求解lcm时通 阅读全文