Acwing.842 排列数字(DFS实现全排列)

news/2024/7/20 20:01:52 标签: 深度优先, 算法

题目

给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。
现在,请你按照字典序将所有的排列方法输出。

输入格式

共—行,包含一个整数n。输出格式
按字典序输出所有排列方案,每个方案占一行。

数据范围

1 ≤n ≤7

  • 输入样例:
3
  • 输出样例:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

题解

#include <iostream>
using namespace std;
const int N = 10;
int n;
int path[N];
bool st[N];
void dfs(int u)
{
	if (u == n)
	{
		for (int i = 0; i < n; i ++ ) printf("%d ", path[i]);
		puts("");	
		return;
	}

	for (int i = 1; i <= n; i ++ )
	{
		if ( !st[ i])
		{
			path[u] = i ;
			st[i] = true;
			dfs(u + 1);
			st[i] = false;
		}
	}
}	
int main()
{
	cin >> n;
	dfs(0);
	return 0;
}

思路

深度优先搜索最简单的题目与模板,做过这道题之后可以尝试去试试迷宫类问题。


http://www.niftyadmin.cn/n/1007394.html

相关文章

【Android Framework系列】第4章 PMS原理

1 PMS简介 PMS&#xff08;PackageManagerService&#xff09;是Android提供的包管理系统服务&#xff0c;它用来管理所有的包信息&#xff0c;包括应用安装、卸载、更新以及解析AndroidManifest.xml。通过解析每个安装应用的AndroidManifest.xml&#xff0c;将xml中的数据全部…

Scala之泛型详解

泛型用于指定类或方法可以接受任意类型参数&#xff0c;参数在实际使用时才被确定&#xff0c;泛型可以有效地增强程序的适用性&#xff0c;使用泛型可以使得类或方法具有更强的通用性。泛型的典型应用场景是集合及集合中的方法参数&#xff0c;可以说同 Java 一样&#xff0c;…

python机器学习——聚类评估方法 K-Means聚类 神经网络模型基础

目录 聚类模型的评价方法&#xff08;1&#xff09;轮廓系数&#xff1a;&#xff08;2&#xff09;评价分类模型 【聚类】K-Means聚类模型&#xff08;1&#xff09;聚类步骤&#xff1a;&#xff08;2&#xff09;sklearn参数解析&#xff08;3&#xff09;k-means算法特点 神…

VS2019的安装和简单使用

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Android 开发环境搭建

系列文章 MySQL安装教程&#xff08;详细&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/126037520 MySQL卸载教程&#xff08;详细&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/129279265 …

python的线程

threading 模块 两种方式&#xff1a;线程处理函数 与 继承 threading.Thread 类 使用线程处理函数创建多线程的用法类似于 thread 模块创建多线程 使用继承 threading.Thread 类实现多线程的本质就是重写 threading.Thread 类中的 构造函数 与 run 方法 # (1) 线程处理函数 …

欧科云链2023年报:毛利达1.55亿港元,数字资产业务成最大增长点

据香港商报报道&#xff0c;2023年6月28日&#xff0c;欧科云链控股有限公司&#xff08;以下简称“欧科云链”&#xff09;及其附属公司&#xff08;股份代号&#xff1a;1499.HK&#xff0c;以下简称“集团”&#xff09;发布了截至2023年3月31日的年度报告。报告期内&#x…

《C++高级编程》读书笔记(十三:C++ I/O揭秘)

1、参考引用 C高级编程&#xff08;第4版&#xff0c;C17标准&#xff09;马克葛瑞格尔 2、建议先看《21天学通C》 这本书入门&#xff0c;笔记链接如下 21天学通C读书笔记&#xff08;文章链接汇总&#xff09; 1. 使用流 1.1 流的含义 C 中预定义的流 缓冲的流和非缓冲的流…