‹ 上一题 下一题 ›

g6-07165. N 皇后·首行与收工 未做

1000 ms 256 MB 测试点 ? 自拟题知识点题GESP-66级·深度优先搜索客观题单选

N 皇后代码骨架如下:

void dfs(int row) {
    if (row == n) { ans++; return; }
    for (int c = 0; c < n; c++) { /* 冲突检查、放置、递归、撤销 */ }
}

主函数调用 dfs(0),出口判断是 row == n。对「起点 0、出口 n」的理解,正确的是( )。

  • A. 起点 0 有问题:棋盘行号从 1 开始,第 0 行不存在,这样写会越界
  • B. 出口 row == n 表示还剩一行没放,应该继续尝试放置
  • C. 行号从 0 数到 n−1,dfs(0) 从第 0 行开始站岗;递归到 row == n 说明 n 行全部放完,收下这一种放法
  • D. 出口也可以改写成 row == n - 1,计数效果完全相同
未选择
输入
输出

            
答案