题型:组合题
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;
} (1).如果因为某些问题,导致程序运行第25行的dfs函数之前,数组p的初值并不全为0,则对程序的影响是?
| A. 输出的答案比原答案要小 |
B. 无法确定输出的答案 |
| C. 程序可能陷入死循环 |
D. 没有影响 |
在dfs函数运行过程中,k的取值会满足1≤k≤n+1。
| A.正确 | B.错误 |
假如删去第14行的“if (flag[i]) continue;”,输入3,得到的输出答案是?
| A. 27 |
B. 3 |
| C. 16 |
D. 12 |
当输入的n=4的时候,程序输出的答案为?
| A. 11 |
B. 12 |
| C. 24 |
D. 9 |
删除第19行的“flag[i]=false;”,对答案不会产生影响。
| A.正确 | B.错误 |
当输入的n=3的时候,程序输出的答案为3。
| A.正确 | B.错误 |
更新时间:2025-10-16 09:47:43
|
【知识点】
CCF非专业级别软件能力认证CSP-S/提高级
抱歉! 您未登录, 不能查看答案和解析点击登录












