首页 > 其他分享 >TEMPLATE3. Permutations 排列

TEMPLATE3. Permutations 排列

时间:2022-10-23 20:47:23浏览次数:47  
标签:TEMPLATE3 排列 Permutations long 乱序 define

TEMPLATE3. Permutations

组合,可以乱序。所以,需要记录哪些数用过了。每次递归时,选用第一个没用过的数。

注意回溯时清空标记。

// TEMPLATE3. Permutations
#include <bits/stdc++.h>
#define int long long
#define SIZE 200010
#define all(x) x.begin(), x.end()
#define debug(x) cout<<#x<<":"<<x<<endl;
using namespace std;

int n;
int a[SIZE], b[SIZE]={0};

void Solve(int k=0)
{
	if(k==n)
	{
		for(int i=0; i<n; i++) cout<<a[i]<<" ";
		cout<<endl;
		return;
	}
	for(int i=1; i<=n; i++)
		if(!b[i])
		{
			b[i]=1; a[k]=i;
			Solve(k+1);
			b[i]=0;
		}
}

signed main()
{
	cin>>n;
	Solve();

    return 0;
}

标签:TEMPLATE3,排列,Permutations,long,乱序,define
From: https://www.cnblogs.com/jerrywang2009/p/16819453.html

相关文章

  • Madoka and the Sixth-graders (全排列队列,每一个点可以向外连1条线题型+倍增法处理
    题意:Madoka的教室里有 nn 个座位,一开始,编号为 ii 的座位上坐着编号为 b_i(1\leb_i\len)bi​(1≤bi​≤n) 的同学。门外有排成一队的,编号从 n+1n+1 开始的,......
  • 嵌入式-c语言基础:冒泡排序实现从大到小排列
    #include<stdio.h>intmain(){/*冒泡排序:从大到小*//*i=0第1轮(i+1):需要比较9次(sizeArr-i-1)*//*i=1第2轮(i+1):需要比较8次(sizeArr-i-1)*//*i=2第3......
  • 排列组合
    排列,是指从给定个数的元素中取出指定个数的元素进行排序。组合,是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。......
  • css使内部元素纵向均匀排列
     flex里的两个属性连用即可达到想要的效果(写一个长方形flex盒子,并使内部元素纵向排列)flex-direction:column;justify-content:space-around;flex-direction属......
  • 46. 全排列
    classSolution{public://dfsvector<vector<int>>res;vector<int>path;//只能是全局变量boolflag[100];intn=0;voiddfs(intu,v......
  • 【LeetCode】1470. 重新排列数组(C++)
    1470.重新排列数组(C++)​​1题目描述​​​​2示例描述​​​​2.1示例1​​​​2.2示例2​​​​2.3示例3​​​​3解题提示​​​​4源码详解(C++)​​1题目描述......
  • 横向排列每天考勤时间
    问题:根据姓名和日期,横向排列考勤时间。let源=Excel.CurrentWorkbook(){[Name="表1"]}[Content],分组的行=Table.Group(源,{"姓名","日期"},{"时间",eachLi......
  • 递归与排列组合问题
    指数型枚举#include<iostream>usingnamespacestd;intn,num[15];voidprint(intcnt){cout<<num[1];for(inti=2;i<=cnt;i++){co......
  • 回溯 排列问题
    leetcode46题目描述:给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。示例1:输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,......
  • flex竖排列元素排列方向
    flex竖排列元素排列方向一、flex-direction:(元素排列方向)※flex-direction:row(横向从左到右排列==左对齐)※flex-direction:row-revers......