全排列问题

题目描述

按照字典序输出自然数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. Kettle初使用

    Kettle的使用还是比较简单,但使用过程中会遇到一些问题: 1.mysql8以上版本连接数据库的时候汇报如下错误: 解决方法:参考链接:https://www.cnblogs.com/wuzaipe ...

  2. 上传镜像到harbor

    https://blog.csdn.net/weixin_45335305/article/details/123817541

  3. 051_Lightning 定义 直接翻译来的

    那么为什么要命名为"Lightning"?那么,想一想关于实际Lightning,你在暴风雨中看到的那种.想想它的速度有多快,如果你眨眼,你可能会想念它.想想它是多么美丽; Lig ...

  4. com.alibaba.fastjson.JSONObject cannot be cast to xxx

    今天在使用json格式的数据进行转化的时候遇到了这个问题,故此记录下来. 通常我们使用JSON把数据转成实体的方法是这样的 List<DataModel> dataModels= (Lis ...

  5. Windows server 2016 域服务1之创建域

    谁知道以后会不会用到呢,总不能现学不是,写下来以后也许用的上. 本文为自己实验操作,工作环境是否与之相同本人并不清楚,步骤中详略参半,原理不会在这里说,因为我也不清楚. 1.首先安装域服务,选择添加角 ...

  6. flutter TextField 使用prefixIcon图标和文字间距问题

    可以看到使用prefixIcon图标就出现间距问题.网上看了很多文章,好像是没有什么好的解决办法,也有可能是太简单了,别人懒的发(哭笑). 我把我知道的方法写出来吧 decoration: Input ...

  7. noi 1.1 4 保留三位的浮点数

    描述 输入一个单精度浮点数,保留3位小数输出这个浮点数. 输入 只有一行,一个单精度浮点数. 输出 也只有一行,输入的单精度浮点数. 样例输入 12.34521 样例输出 12.345 题意 就是输入 ...

  8. new关键字的作用

    new关键字会进行如下的操作: 1. 创建一个空的简单JavaScript对象(即`{}`): 2. 为步骤1新创建的对象添加属性`__proto__`,将该属性链接至构造函数的原型对象 : 3. 将 ...

  9. javaScript的介绍

    JavaScript Java Script的概述: 1组成 三部分组成 ecmaScript 基础语法(es5) dom document object 莫得了 文档对象模型 (操作html文档内容 ...

  10. [自用初学]c++的构造函数

    #include <stdio.h> #include <string.h> class Student { private: int id; char name[32]; p ...