输出全排列 (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;
}
目录
相关文章
|
程序员 项目管理
程序员如何做好个人职业规划彻底摆脱焦虑?
程序员如何做好个人职业规划彻底摆脱焦虑?
385 0
|
8月前
|
JavaScript 前端开发
如何减少Node.js应用中的全局变量?
如何减少Node.js应用中的全局变量?
471 133
|
8月前
|
存储 Linux iOS开发
Elasticsearch Enterprise 8.18 发布 - 分布式搜索和分析引擎
Elasticsearch Enterprise 8.18 (macOS, Linux, Windows) - 分布式搜索和分析引擎
339 0
|
10月前
|
机器学习/深度学习 人工智能 数据可视化
生成AI的两大范式:扩散模型与Flow Matching的理论基础与技术比较
本文系统对比了扩散模型与Flow Matching两种生成模型技术。扩散模型通过逐步添加噪声再逆转过程生成数据,类比为沙堡的侵蚀与重建;Flow Matching构建分布间连续路径的速度场,如同矢量导航系统。两者在数学原理、训练动态及应用上各有优劣:扩散模型适合复杂数据,Flow Matching采样效率更高。文章结合实例解析两者的差异与联系,并探讨其在图像、音频等领域的实际应用,为生成建模提供了全面视角。
2084 1
生成AI的两大范式:扩散模型与Flow Matching的理论基础与技术比较
|
人工智能 机器人
“AI+儿童陪伴”,是噱头还是趋势?
AI陪伴型玩具逐渐成为家庭教育的新选择。它们不仅能够解放忙碌的家长,减轻其负担,还能满足孩子的好奇心,提供寓教于乐的成长环境。然而,AI技术尚未完全成熟,内容的准确性和产品的安全性仍需关注,家长在享受便利的同时,仍需谨慎陪伴。
|
测试技术 API Python
小红书API接口测试 | 小红书笔记详情 API 接口测试指南
随着互联网的发展,越来越多的应用开始使用API接口来提供服务。而API接口的测试也变得越来越重要。本文将介绍如何使用Python语言进行小红书笔记详情API接口的测试。
|
JavaScript
使用layui checkbox复选框样式实现单选功能
使用layui checkbox复选框样式实现单选功能
810 0
刚学完二叉树,来试试这些oj题练练手吧!
刚学完二叉树,来试试这些oj题练练手吧!
138 0
|
开发者
Webpack5 系列(三):开发环境的设置1
Webpack5 系列(三):开发环境的设置
183 0
|
存储 缓存 安全
Java安全之反序列化漏洞分析
Java安全之反序列化漏洞分析
645 0
Java安全之反序列化漏洞分析