输出所有可能的全排列
2017-05-03 13:53
260 查看
#include <iostream> #include <bits/stdc++.h> using namespace std; int d[13]; int v[13]; int n; void dfs(int depth) { if(depth==n) { for(int i=0; i!=n; ++i) { cout<<d[i]; } cout<<endl; return ; } for(int i=1; i<=n; ++i) { if(v[i]==0) { v[i]=1; d[depth]=i; dfs(depth+1); v[i]=0; } } } int main() { cin>>n; memset(v,0,n); dfs(0); return 0; }
相关文章推荐
- 对输入的字符串按字典顺序输出所有的全排列,字符串可以由重复字符
- 用拓扑排序+动态规划的方法输出DAG的所有可能的路径
- 写一个程序,对于一个正整数,输出它所有可能的连续自然数(两个以上)之和的算式
- 编写一个算法输出n个布尔量的所有可能的组合
- 输入N个数,输出所有可能的排列组合(6+个小时啊,耶稣~)
- 数据结构--栈-编写一个算法输出n个布尔量的所有可能的组合
- 有如图所示的七巧板,试设计算法,使用至多4种不同颜色对七巧板进行涂色(每块七巧板一种颜色),要求相邻区域的颜色互补相同,打印输出所有可能的涂色方案。
- 给定n个数{1,2,3,...,n},从中选择任意两两不同的k个数,输出所有可能的组合
- 在1、2、3...9(保持这个顺序)之间可任意放+或者-或者不放,使其结果等于100,输出所有可能的放法。js写法
- HDU 4265 Science! 网络流解多重匹配,输出所有比配可能
- leetcode95-Unique Binary Search Trees II(输出所有可能的BST)
- 将n个相异的球按每小组m个球进行分组,不足m个的也算一个小组。输出所有可能的分组方式;对其中的一种分组方式,都指明每个小组包含的球的情况!
- 给一个整数数组,输出所有可能的子集
- 网易有道9-13北邮笔试题:输入字符串,将字符串里的*用0或1替换,输出所有可能的字符串
- 输入一个整数,输出所有可能的整数序列,使得序列中的整数之和等于输入的整数
- 输出指定括号对数的所有可能组合
- 如果一个正整数可以由连续正整数求和而来,输出所有可能的组合
- 要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数
- 给定入栈顺序,输出所有可能的出栈情况,并判断给定的序列是否为正确的输出序列
- 翻转01字符串中的?,并列出所有的可能输出