‹ 上一题 下一题 ›

g6-07144. 组合·start 的职责 未做

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

「从 n 个数里选 k 个」的组合搜索(相当于食堂 n 样菜里挑 k 样,只看挑了哪几样、不看顺序),比全排列模板只多了一个参数:

void dfs(int pos, int start) {        // 填第 pos 位,候选从 start 号起
    if (pos == k + 1) { /* 输出方案 */ return; }
    for (int num = start; num <= n; num++) {
        path[pos] = num;
        dfs(pos + 1, num + 1);        // 下一位只能选 num 之后的
    }
}

参数 start 的作用是( )

  • A. 记录当前已经选了几个数
  • B. 记录当前方案里最小的数,输出时要用
  • C. 限定本层的候选只能从 start 号起往后取,保证后填的数一定比先填的大
  • D. 控制递归层数,防止无限递归
未选择
输入
输出

            
答案