main
黄海 2 years ago
parent f7bc8902db
commit b67b74ebf3

@ -40,15 +40,11 @@ int main() {
for (int j = i + 1; j < k; j++)
if (g[i][k] + g[k][j] < ans - dis[i][j]) { // 减法防止爆INT
ans = dis[i][j] + g[i][k] + g[k][j];
// 找到更小的环,需要记录路径,并且要求: 最小环的所有节点(按顺序输出)
// 顺序
// 1. 上面的i,j枚举逻辑是j>i,所以i是第一个
// 2. i->j 中间的路线不明需要用get_path进行查询出i->j的最短路径怎么走,当然,也是在<k的范围内的
// 3. 记录j
// 4. 记录k
path.clear();
path.push_back(i);
get_path(i, j); // i是怎么到达j的就是问dis[i][j]是怎么获取到的,这是在求最短路径过程中的一个路径记录问题
// 包含最小环的所有节点(按顺序输出)
// 找到长度更小的环,需要记录路径,并且要求: 最小环的所有节点(按顺序输出)
path.clear(); // 每次找到新的最小环,那path就是为最小的环而准备的以前的都作废掉
path.push_back(i); // 序号i < j < k
get_path(i, j);
path.push_back(j);
path.push_back(k);
}

Loading…
Cancel
Save