输出全排列 (20 分)(dfs模板题)

简介: 输出全排列 (20 分)(dfs模板题)

请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。


输入格式:

输入给出正整数n(<10)。


输出格式:

输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a1,a2,⋯,an排在序列b1,b2,⋯,bn之前,如果存在k使得a1=b1,⋯,ak=bk 并且 ak+1<bk+1。


输入样例:

3

结尾无空行


输出样例:

1. 123
2. 132
3. 213
4. 231
5. 312
6. 321

结尾无空行


#include<iostream>
using namespace std;
int path[10],vis[10],n;
void dfs(int u)
{
    if(u>n)
    {
        for(int i=1;i<=n;i++) cout<<path[i];
        cout<<endl;
    }
    for(int i=1;i<=n;i++)
    {
        if(!vis[i])
        {
            path[u]=i;
            vis[i]=1;
            dfs(u+1);
            vis[i]=0;//恢复现场
        }
    }
}
int main()
{
    cin>>n;
    dfs(1);
    return 0;
}
目录
相关文章
|
11月前
|
机器学习/深度学习 存储 算法
【DFS经典例题】2n皇后问题
【DFS经典例题】2n皇后问题
58 0
|
12月前
|
移动开发 算法
DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题
DFS深度优先算法 —— AcWing 842. 排列数字AcWing 843. n-皇后问题
81 0
八皇后(dfs全排列)
八皇后(dfs全排列)
62 0
|
机器学习/深度学习
(dfs剪枝)(递归)1209. 带分数
(dfs剪枝)(递归)1209. 带分数
62 0
|
机器学习/深度学习 Java
【每日一题Day64】LC1799N 次操作后的最大分数和 | 状态压缩dp 状态压缩+dfs+记忆化搜索
每个数字有两种状态,删除或者未删除,因此可以使用状态压缩记录未删除的数字情况state,便于使用位运算进行状态的遍历及转移;使用状态压缩dp找到将所以数字删除的最大分数
87 0
【每日一题Day64】LC1799N 次操作后的最大分数和 | 状态压缩dp 状态压缩+dfs+记忆化搜索
L3-008 喊山 (30 分)(bfs)
L3-008 喊山 (30 分)(bfs)
86 0
L3-008 喊山 (30 分)(bfs)
|
存储
L2-031 深入虎穴 (25 分)(bfs)
L2-031 深入虎穴 (25 分)(bfs)
186 0
L2-031 深入虎穴 (25 分)(bfs)
|
算法
递归题目练习---N皇后问题
递归题目练习---N皇后问题
90 0
递归题目练习---N皇后问题
|
算法
正整数n不同分解式的个数(DFS)
正整数n不同分解式的个数(DFS)
179 0
L2-026 小字辈 (25 分)(bfs)
L2-026 小字辈 (25 分)(bfs)
114 0