当前位置: 首页 > article >正文

Acwing94递归实现排列型枚举

把 1∼n1∼n 这 nn 个整数排成一行后随机打乱顺序,输出所有可能的次序。

输入格式

一个整数 nn。

输出格式

按照从小到大的顺序输出所有方案,每行 11 个。

首先,同一行相邻两个数用一个空格隔开。

其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。

数据范围

1≤n≤91≤n≤9

输入样例:
3
输出样例:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=10;
int n;
int state[N];
bool used[N];

void dfs(int u){
	if(u>n){
		for(int i=1;i<=n;i++) printf("%d ",state[i]);
		puts("");
		return ;
	}
	for(int i=1;i<=n;i++){
		if(!used[i]){
			state[u]=i;
			used[i]=true;
			dfs(u+1);
			state[u]=0;
			used[i]=false;
		}
	}
}
int main(){
	scanf("%d",&n);
	dfs(1);
	return 0;
}


http://www.kler.cn/a/525135.html

相关文章:

  • 通过配置代理解决跨域问题(Vue+SpringBoot项目为例)
  • 【C语言练习题】整数和实数在计算机中的二进制表示
  • C语言中的函数有哪些种类型
  • Your build is currently configured to use Java 21.0.3 and Gradle 6.6.1. 处理办法
  • go-zero学习笔记(一)
  • 《多线程基础之互斥锁》
  • Java基础知识-第14章-Java注解
  • 上位机知识篇---Linux源码编译安装链接命令
  • web ssti注入
  • 《Operating System Concepts》阅读笔记:p1-p1
  • 基于Springboot的智能学习平台系统【附源码】
  • 让远程也能访问家里的电脑——frp反代
  • Elasticsearch 自定义分成器 拼音搜索 搜索自动补全 Java对接
  • 多线程执行大批量数据查询
  • 手写instanceof、手写new操作符
  • 多头潜在注意力(MLA):让大模型“轻装上阵”的技术革新——从DeepSeek看下一代语言模型的高效之路
  • python-leetcode-反转链表 II
  • vulfocus/thinkphp:6.0.12 命令执行
  • go-zero学习笔记(二)
  • Pyside的QWebEngineProfile类