CSP 模拟 · CSP 2020 第一轮(初赛)模拟 第 17 题

阅读程序 · 答案 BA

← 整套速查表 CSP 模拟 全部真题

题目

2.

#include<bits/stdc++.h>
using namespace std;
int n, m;
int f[101][101];
int F[101][101];
int main() {
  scanf("%d%d", &n, &m); // n的值在1到100之间
  memset(f, -1, sizeof(f));
  for(int i = 1; i <= m; i++) {
    int u, v, w; // w的值在0到10000之间
    scanf("%d%d%d", &u, &v, &w);
    f[u][v] = f[v][u] = w;
  }
  for(int k = 1; k <= n; k++)
    for(int i = 1; i <= n; i++)
      for(int j = 1; j <= n; j++)
        if(f[i][k] != -1 && f[k][j] != -1)
          if(f[i][j] == -1||f[i][j]>f[k][j]+f[i][k])
            f[i][j] = f[i][k] + f[k][j];
  int ans = 2147483647;
  for(int i = 1; i <= n; i++)
    for(int j = 1; j <= n; j++) {
      for(int x = 1; x <= n; x++)
        for(int y = 1; y <= n; y++)
          F[x][y] = f[x][y];
      F[i][j] = F[j][i] = 0;
      for(int x = 1; x <= n; x++)
        for(int y = 1; y <= n; y++)
          if(F[x][y]==-1||F[x][y]>F[x][i]+F[i][y])
            F[x][y] 

(本题为阅读程序 / 完善程序,完整题目与测试数据见平台)
答案:BA

解题思维

本题考查基础知识的理解与应用,需要结合所学概念进行分析和判断。

常见错误

注意审题,看清题目要求是选择"正确的"还是"不正确的"。逐一分析每个选项,排除明显错误的选项。

详细解析(节选)

核心概念:本题涉及计算机科学基础知识,需要准确理解相关概念的定义和应用场景。

推导分析:逐一检查每个选项是否符合题目的条件和要求;对于不确定的选项,可以尝试举反例验证;结合排除法缩小选择范围。

避坑指南:注意否定词如"不正确的是""不属于";注意限定词如"一定""可能""必须"等绝对化表述往往是陷阱。

解题技巧:先排除明显错误的选项,在剩余选项中仔细比较。对于计算题,列出公式仔细计算。

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