Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
83875 sh25_shenpy 排队 C++ 通过 2 MS 256 KB 1131 2026-02-03 12:16:21

Tests(2/2):


#include <iostream> #include <vector> using namespace std; int n, k; // 标记数字是否被选中,避免重复选 vector<bool> used; // 存储当前已选的k个元素 vector<int> path; // DFS核心函数 void dfs(int step) { // 1. 终止条件:已选满k个元素,输出结果 if (step == k) { for (int num : path) cout << num << " "; cout << endl; return; } // 2. 选择列表:遍历1~n,选未被使用的数字 for (int i = 1; i <= n; ++i) { if (!used[i]) { // 做选择:标记已用,加入路径 used[i] = true; path.push_back(i); // 递归:进入下一步,选下一个元素 dfs(step + 1); // 回溯:撤销选择,恢复现场(关键!) path.pop_back(); used[i] = false; } } } int main() { cin >> n >> k; // 初始化:used大小n+1(数字1~n,下标从1开始更直观) used.resize(n + 1, false); // 从第0步开始递归(已选0个元素) dfs(0); return 0; }


测评信息: