P1706 全排列问题——回溯、暴力枚举
题目描述
按照字典序输出自然数
输入格式
一个整数
输出格式
由
每个数字保留
输入输出样例 #1
输入 #1
3
输出 #1
1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1
说明/提示
题解
#include <bits/stdc++.h> using namespace std; int n; vector<vector<int>> solutions; vector<int> mycurrent; vector<bool> used; void func() { if(mycurrent.size()==n) { solutions.push_back(mycurrent); return; } for(int i=1;i<=n;i++) { if(!used[i]) { mycurrent.push_back(i); used[i]=true; func(); used[i]=false; mycurrent.pop_back(); } } } int main() { cin>>n; used.resize(n+1); func(); for (const auto& solution:solutions) { for (int num:solution) { cout<< setw(5) << num; } cout<<endl; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理