点击查看代码
#include<iostream>

using namespace std;
const int N = 10;
int n;
void dfs(int u, int nums[], bool st[]) {
if (u > n) {
for (int i = 1; i <= n; i++) cout << nums[i] << ' ';
cout << endl;
}
else {
for (int i = 1; i <= n; i++)
if (!st[i]) {
st[i] = true;
nums[u] = i;
dfs(u + 1, nums, st);
st[i] = false;
}
}
}
int main()
{
cin >> n;
int nums[N];
bool st[N] = {0};
dfs(1, nums, st);
return 0;
}

  1. nums[] 用来记录排列方案,st[i] 用来记录数字 i 是否被用过
  2. st[i] = false 是因为在执行下一次分支时,st[i] 是目前还没有被用到的,学名叫做 “恢复现场”,比如序列是 1 2 _ _ ,此时 st[i] = 3,但是在执行完 3 的所有递归后,下一个 st[i] = 4,数字 3 是目前还没有用到的数字

[AcWing 823] 排列的更多相关文章

  1. AcWing 230. 排列计数 水题(组合数+错排)打卡

    题目:https://www.acwing.com/problem/content/232/ #include<bits/stdc++.h> #define ll long long #d ...

  2. AcWing 842. 排列数字

    深搜的一道水题 https://www.acwing.com/problem/content/844/   正确输入输出 #include<bits/stdc++.h> using nam ...

  3. 《挑战程序设计竞赛》——DFS

    DFS(深度优先搜索) 简介 深度优先搜索(DFS,Depth-First Search)是搜索的手段之一.它从某个状态开始,不断的转移状态直到无法转移.然后退回到前一步的状态,继续转移到其他状态,如 ...

  4. AcWing 94. 递归实现排列型枚举

    AcWing 94. 递归实现排列型枚举 题目链接 把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序. 输入格式 一个整数n. 输出格式 按照从小到大的顺序输出所有方案,每行1个. ...

  5. [AcWing 51] 数字排列

    点击查看代码 class Solution { public: vector<vector<int>> res; vector<vector<int>> ...

  6. acwing 2 零一背包问题

    地址 https://www.acwing.com/problem/content/description/2/ 题目描述有 N 件物品和一个容量是 V 的背包.每件物品只能使用一次. 第 i 件物品 ...

  7. acwing 116. 飞行员兄弟

    地址  https://www.acwing.com/problem/content/118/ “飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱. 已知每个把手可以处于以下两种状态之 ...

  8. Acwing-271-杨老师的照相排列(DP)

    链接: https://www.acwing.com/problem/content/273/ 题意: 杨老师希望给他的班级拍一张合照. 学生们将站成左端对齐的多排,靠后的排站的人数不能少于靠前的排. ...

  9. AcWing 260. 买票 (树状数组+二分)打卡

    题目:https://www.acwing.com/problem/content/description/262/ 题意:给定一个队伍,每个人过来的时候可以插队,每个人会输入一个插入到哪个位置,但是 ...

随机推荐

  1. SpringAOP--aop使用

    SpringAOP使用方式 切点表达式 常用的符号: *:匹配任何数量字符: ..:匹配任何数量字符的重复,如在类型模式中匹配任何数量子包:而在方法参数模式中匹配任何数量参数. +:匹配指定类型的子类 ...

  2. 数据库连接Database link?

    在一个用户下,可以获取到另外的用户下的表的数据,通常在跨数据库时使用. create database link link93 connect to scott identified by tiger ...

  3. 什么是线程组,为什么在 Java 中不推荐使用?

    ThreadGroup 类,可以把线程归属到某一个线程组中,线程组中可以有线程对象, 也可以有线程组,组中还可以有线程,这样的组织结构有点类似于树的形式. 为什么不推荐使用?因为使用有很多的安全隐患吧 ...

  4. resin服务之一---安装及部署

    参考网站: http://caucho.com/ http://www.oschina.net/p/resin http://caucho.com/resin-4.0/admin/starting-r ...

  5. SpringAop实现原理及代理模式

    Spring Aop的原理 Spring的AOP就是通过动态代理实现的.当为某个Bean或者某些Bean配置切面时,Spring会为其创建代理对象,当调用该对象的某个方法时,实际是调用生成的代理类的对 ...

  6. sudo rosdep init 出现 ERROR: cannot download default sources list from:错误解决方法

    关于安装ROS时出现的rosdep init错误 sudo rosdep init ERROR: cannot download default sources list from: https:// ...

  7. 顺利通过EMC实验(16)

  8. nginx开启gzip和缓存配置

    # 开启gzip gzip on; # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩 gzip_min_length 1k; # gzip 压缩级别,1-10,数字越大压缩的越好,也越占用C ...

  9. 国际化相对时间格式化API:Intl.RelativeTimeFormat

    原文:The Intl.RelativeTimeFormat API 作者:Mathias Bynens(@mathias) 现代 Web 应用程序通常使用"昨天","4 ...

  10. python爬虫---污言污语网站数据采集

    代码: import requests from lxml import etree headers = { "user-agent": "Mozilla/5.0 (Wi ...