← 查看本卷题目
组合题6 个小题
已作答 0 / 6
#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;} 
第17题判断题原卷 1.5 分

在 dfs 函数运行过程中,kk 的取值会满足 1≤k≤n+11 \leq k \leq n+1。

填写答案