GESP 八级 · GESP 202503 C++ 八级 第 12 题

选择题 · 答案 A · 考点:算法、动态规划

← 整套速查表 GESP 八级 全部真题

题目

下面 Floyd 算法中,横线处应该填入的是( )。

#include <iostream>
using namespace std;

#define N 21
#define INF 9999999
int map[N][N];
int main() {
    int n, m, t1, t2, t3;
    cin >> n >> m;

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            if (i == j)
                map[i][j] = 0;
            else
                map[i][j] = INF;
        }
    }

    for (int i = 1; i <= m; i++) {
        cin >> t1 >> t2 >> t3;
        map[t1][t2] = t3;
    }

    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                if (map[i][j] > map[i][k] + map[k][j])
                    ________; // 在此处填入选项

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            cout.width(4);
            cout << map[i][j];
        }
        cout << endl;
    }
}
答案:A

考点

算法动态规划 讲解 →动态规划 真题汇总 →

解题思维

STL 容器:vector(动态数组)、set/map(红黑树,有序)、unordered_set/map(哈希表,无序)。注意迭代器失效问题。

常见错误

填空时注意语法完整性:分号、括号匹配、函数参数类型和个数、返回值类型。

详细解析(节选)

【考点】图论:最短路径(Floyd算法)|动态规划

1. 🎯 考纲定位

GESP 八级图论模块核心考点——Floyd 算法三重循环中的状态转移方程。命题人卡住的是"知道有 k 层循环但记不住更新哪个变量"的普遍缺陷,这是图论算法题的高频失分点。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断