全排列问题

题目描述

按照字典序输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。

输入格式

一个整数n

输出格式

由1 ~ n组成的所有不重复的数字序列,每行一个序列。

每个数字保留5个场宽。

样例输入

3

样例输出

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;
int p[10];
int ans[10]; void print()
{
for(int i = 0; i < n; i++){
printf("%5d", ans[i]);
}
printf("\n");
} void dfs(int now)
{
if(now == n){
print();
}
for(int i = 1; i <= n; i++){
if(!p[i]){
ans[now] = i;
p[i] = 1;
dfs(now + 1);
p[i] = 0;
}
}
} int main()
{
cin >> n;
dfs(0);
return 0;
}

P1706 全排列问题(DFS)的更多相关文章

  1. 洛谷——P1706 全排列问题

    P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组成 ...

  2. 洛谷 P1706 全排列

    可能是最简单的题了……讲真搜索hhh 洛谷 P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: ...

  3. 【递归】P1706全排列问题

    题目相关 题目描述 输出自然数 1 到 n所有不重复的排列,即 n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入格式 一个整数 n**. 输出格式 由 1∼n 组成的所有不重复的数字 ...

  4. 洛谷 P1706 全排列问题

    题目链接 https://www.luogu.org/problemnew/show/P1706 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数 ...

  5. 洛谷P1706全排列问题

     P1706 全排列问题 题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组 ...

  6. 洛谷 P1706 全排列问题 :STL / dfs

    题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列, ...

  7. 【搜索2】P1706 全排列问题

    题目描述 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 输入输出格式 输入格式: n(1≤n≤9) 输出格式: 由1-n组成的所有不重复的数字序列, ...

  8. 全排列(dfs)

    无重复元素的全排列 输入n(<=11),按从小到大输出数字1 到n 个的全部排列.样例:输入:3输出:1:1 2 32:1 3 23:2 1 34:2 3 15:3 1 26:3 2 1 全排列 ...

  9. 全排列---(dfs)

    全排列输入一个数n,按字典序输出1-n的全排列 #include "cstdio" #include "cstring" ],ans[],n; void dfs ...

  10. 九度OJ 1120:全排列 (DFS)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:4471 解决:1139 题目描述: 给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列. 我们假设对于小写字母有'a' < ...

随机推荐

  1. Win10 ISS Web服务器安装与部署

    Win10 ISS Web服务器安装与部署 安装 ISS 控制面板-->程序-->启用或关闭 Windows 功能-->Internet Information Services 测 ...

  2. vue 鼠标拖拽

    <template> <div class="home"> <div id="box" v-drag></div> ...

  3. C++实现链式表示多项式加法运算

    #include<iostream>#include<cstdlib>using namespace std;#define MAXSIZE 100#define OK 1#d ...

  4. Windows 操作

    一.基础命令 1. 盘符切换:D:: 2. 查看当前目录文件:dir: 3. 当前盘符内目录切换:cd path: 二.其他命令 1. netstat:查看网络端口状态 A. 查看某一端口信息:net ...

  5. el-table 如果文字过多展示...

    1 <el-table-column label="任务名称" width="120px" align="center" :show- ...

  6. Count Triplets That Can Form Two Arrays of Equal XOR

    Count Triplets That Can Form Two Arrays of Equal XOR 题意 给定一个数组,求多少个三元对\((i,j,k)\)满足\(S(i,j-1)=S(j,k) ...

  7. 由浇花工具开始IOT物联网平台之开始前言篇【1】

    在2020年时,突然有个想法,就是做个浇花工具,因为平时喜欢养花,有时忘记浇花,有时感觉手动浇花太麻烦,所以做个这个小玩意,是用.NET 开发的WinForm小程序,来控制单片机,带动水泵浇花,还可以 ...

  8. wx小程序 组件无法使用全局样式 (app.wxss)

    解决方法: 在组件中加上options选项 Component({ options: { addGlobalClass: true } })

  9. Python-pytest -> 在自动化测试中,如何切换不同的测试环境

    在构建自动化测试的脚本时候,我们可能会有不同环境的测试需求,如何实现在不同的测试环境之间切换呢?接下来介绍的这种方法,可以自定义命令行参数,从而根据不同的参数值实现不同环境的切换. 解决办法: 使用h ...

  10. LeetCode系列之 (JavaScript) => 53. 最大子数组和

    题目描述: leetcode 题目链接: 53. 最大子数组和 - 力扣(LeetCode) (leetcode-cn.com) 解题思路分析: 题干最终的输出是连续子数组的最大和:1. 贪心算法: ...