‹ 上一题 下一题 ›

g6-07157. 子集搜索·过堂终点 未做

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

「n 个数里挑一些、能否凑出恰好 s」的骨架如下:

bool dfs(int i, int sum) {
    if (i == n + 1) return sum == s;
    if (dfs(i + 1, sum + a[i])) return true;
    return dfs(i + 1, sum);
}

主函数调用 dfs(1, 0),数存在 a[1..n] 中。关于出口条件 i == n + 1,说法正确的是( )。

  • A. 此时第 1 到第 n 个数都已做出「选 / 不选」的决定,sum 就是这个方案的最终和,正好检查它是否等于 s
  • B. 出口设在 n + 1 意味着第 n 个数还没被过堂,方案里漏了一个数
  • C. 出口应该写成 i == n,写 n + 1 会让 i 永远加下去,死循环
  • D. 走到出口时 sum 还是初始的 0,什么都没累加,检查没有意义
未选择
输入
输出

            
答案