‹ 上一题 下一题 ›

g6-07149. 拆分·出口与上界 未做

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

自然数拆分模板如下:

void dfs(int rest, int start) {       // 还剩 rest 要拆,本轮只能选不小于 start 的数
    if (rest == 0) { /* 输出方案 */ return; }
    for (int k = start; k <= rest; k++) {
        方案里记下 k;
        dfs(rest - k, k);             // 下一轮从 k 起选——只增不减
    }
}

关于出口 rest == 0 与循环上界 k <= rest,说法正确的是( )

  • A. 出口是 rest==0 没错,但循环上界写多大都行,反正出口会兜底
  • B. 出口 rest==0 表示剩余量为 0、一组拆法恰好凑齐;上界取 rest,因为单步拆出的数不能超过还剩的量
  • C. 出口应该写成 start==n,表示候选数用完了
  • D. 出口 rest==0 正确,但上界必须放大到 n,否则会漏解
未选择
输入
输出

            
答案