首页 > 其他分享 >递归实现排列型枚举

递归实现排列型枚举

时间:2023-04-01 12:12:31浏览次数:33  
标签:std 排列 递归 int dfs 枚举

#include<iostream>
using namespace std;

const int N=10;
int n;
int state[N]; 
bool used[N];

void dfs(int u){
    if(u==n+1){
        for(int i=1;i<=n;i++){
            cout<<state[i]<<" ";
        }
        cout<<endl;
        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(){
    cin>>n;
    dfs(1);
    return 0;
}

 

标签:std,排列,递归,int,dfs,枚举
From: https://www.cnblogs.com/wxzh-t/p/17278384.html

相关文章

  • 递归相关题
    遵循四个原则,1)程序执行一个函数时,就创建一个新的受保护的独立空间(新函数栈)2)函数的局部变量是独立的,不会相互影响3)递归必须向退出递归的条件逼近,否则就是无限递归,死龟了:)4)当一个函数执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁。斐波那契数列请使......
  • 567. 字符串的排列
    力扣题目链接给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。示例1:输入:s1="ab"s2="eidbaooo"输出:true解释:s2包含s1的排列之一("ba").示例2:输入:s......
  • day29 打卡491.递增子序列 46.全排列 47.全排列 II
    day29打卡491.递增子序列46.全排列47.全排列II491.递增子序列491题目链接classSolution{List<List<Integer>>result=newArrayList<>();LinkedList<......
  • 代码随想录day 28 491. 递增子序列 | * 46.全排列 | 47.全排列 II
    给定一个整型数组,你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入:[4,6,7,7]输出:[[4,6],[4,7],[4,6,7],[4,6,7,7],[6,7......
  • 两两交换链表中的节点|递归
    两两交换链表中的节点链表中每两两相邻的节点将其对调位置,涉及的主要操作位交换节。但需要注意初始位置的交换即返回值,以及奇数个节点的处理方法,这里给出两种方法,迭代和......
  • 反转链表|递归
    反转链表将链表反转过来,可以对比反转数组,但是链表由于不知道链表大小所以反转数组的方法在这里会变得复杂。这里有两种方法,双指针和递归法。对应题目206.反转链表......
  • web_枚举
    网页枚举使用工具gobuster,Nikto,WPScanGobuster安装:sudoaptinstallgobuster有用的全局标志-t线程并发线程数(默认10)-v冗长详细输出-......
  • hivesql练习_排列问题
    现有球队表(team)如下。team_name(球队名称)湖人骑士灰熊勇士拿到所有球队比赛的组合每个队只比一次期望结果如下:team_name_1<string>(队名)team_n......
  • 递归问题 的时间复杂度
    gong公式:T(N)=a*T(N/b)+O(N^d)其中(abd都是常数) N:入参,输入集合a:调用子函数的次数b:调用子函数的规模d:除子递归外的常数操作,没有为0,如果有N次为1如果有N^2次为2......
  • 格点图的等腰三角形判定--枚举的优化
    https://ac.nowcoder.com/acm/contest/52441/F考虑到是格点图,不存在三个点能构成等边三角形,即无需考虑等边三角形的去重。对于一个等腰三角形,去枚举这个等腰三角形的顶......