首页 > 其他分享 >1.全排列

1.全排列

时间:2022-08-23 15:23:21浏览次数:47  
标签:排列 int namespace 50 vis include

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<stack>
 4 using namespace std;
 5 bool vis[50];
 6 int N;
 7 int ans[50]; 
 8 //为什么只输出一个答案?? 
 9 void print()
10 {
11     for(int j=1;j<=N;j++)
12     {
13         printf("%5d",ans[j]);
14     }
15     cout<<endl;
16 }    
17 
18 void DFS(int step)
19 {
20     if(N<step)print();
21 else 
22 {
23         
24     for(int i=1;i<=N;i++)
25     {
26         if(vis[i]==0) 
27         {
28             vis[i]=1;
29             ans[step]=i;//存答案 
30             DFS(step+1);
31             vis[i]=0;//因为回溯,i是更新的,可能大变小,所以得重新设置 
32                     //int j每次循环都开一个新j(九个数九个j) 每层递归的j都不一样 
33                     //如果每层都开一个新i,则不同的i作用域不同
34                     //如果开全局变量的i,则回溯时的i不一定作用域是谁 
35         }
36     }
37 }
38 }
39 int main()
40 {
41     cin>>N;
42     DFS(1);
43     return 0;
44  }

标签:排列,int,namespace,50,vis,include
From: https://www.cnblogs.com/xdzxxintong/p/16616293.html

相关文章

  • 全排列问题
    全排列问题题目大意:输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。这个题我们可以用深搜来解决:每一位在保证不重复的情况......
  • 全排列问题
    全排列问题分析:根据题意,要求输出数字的所有排列组合,最主要的是写一个dfs函数。在函数中要规定循环结束的条件,也就是所有的数排列完成,然后再按照题意输出,在循环中如果这个......
  • 洛谷 P1706 全排列问题
    题目链接:https://www.luogu.com.cn/problem/P1706试题分析:题目要求按照字典序输出自然数 1 到 n 所有不重复的排列,且每一序列中的数字也不重复,我们可以运用搜索,将搜索......
  • 全排列问题
    先定义两个数组,一个是用来存放解的,一个是用来标记该数是否用过。先判断格子是否填满了,如果填满,则输出。如果没有填满,则开始循环,在循环中先判断当前填的数是否用过,如果没......
  • 排列组合
    一·不定方程解的个数例:一个商场有m种颜色的小球,每种小球足够多,在这m种小球中挑选n个小球的选法有多少?一道纯纯的数学题对吧。由题目,我们可以知道\(\sum_{i=1}^na[i]=n......
  • 力扣——剑指 Offer 38. 字符串的排列(全排列)
    题目描述输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例:输入:s="abc"输出:["abc","acb","bac","......
  • 递推递归与排列组合
    递推递归与排列组合说明排列组合排列组合问题在暴力枚举的情况一般有3种情况我们在此记个数为N情况一:打印n个数的全排列:\[N=n!\]情况二:打印n个数中任意m个数......
  • leetcode1175-质数排列
    质数排列分别找出质数和合数的数量,将两者的阶乘相乘即可classSolution{publicintnumPrimeArrangements(intn){intcnt=0;for(inti=2;......
  • 题解 [ZJOI2010]排列计数
    好题。%你赛考到了不会摆烂,后来发现原来有向下取整,题面没有。。。(就算有我也做不出来啦qAq首先我们会发现这个长得就是小根堆,答案就变成了小根堆的计数。首先最小的......
  • [2001年NOIP普及组] 求先序排列
    给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。输入第一行输入一个字符串表示二叉树的中序排列,第二行输入一个字符串表示......