#1403. [CSP2025 提高级] 第 20 题

[CSP2025 提高级] 第 20 题

阅读程序(程序输入不超过数组或字符串定义的范围;判断题正确填 A,错误填 B;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分)

#include <algorithm>
#include <cstdio>
#include <cstring>
bool flag[27];
int n;
int p[27];
int ans = 0;
void dfs(int k) {
    if (k == n + 1) {
        ++ans;
        return;
    }
    for (int i = 1; i <= n; ++i) {
        if (flag[i]) continue;
        if (k > 1 && i == p[k - 1] + 1) continue;
        p[k] = i;
        flag[i] = true;
        dfs(k + 1);
        flag[i] = false;
    }
    return;
}
int main() {
    scanf("%d", &n);
    dfs(1);
    printf("%d\n", ans);
    return 0;
}

判断题

如果因为某些问题,导致程序运行第 25 行的 dfs 函数之前,数组 p 的初值并不全为 00,则对程序的影响是( )。

  • A. 输出的答案比原答案要小
  • B. 无法确定输出的答案
  • C. 程序可能陷入死循环
  • D. 没有影响

{{ select(1) }}

  • 输出的答案比原答案要小
  • 无法确定输出的答案
  • 程序可能陷入死循环
  • 没有影响