2017.5.3 4.全排列

题目描述

给定N(N<10),按照字典序输出所有的N排列。

输入

第一行输入N。

样例输入

3

输出

输出1到N的全排列,一行一个排列,按照字典序顺序输出。

样例输出

1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

基础DFS题
 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4
 5 int n;
 6 bool visit[20];
 7 int list[20];
 8
 9 int DFS(int x)
10 {
11     if(x>n)
12     {
13         for(int i=1;i<=n;i++)
14             printf("%d ",list[i]);
15         printf("\n");
16         return 0;
17     }
18     for(int i=1;i<=n;++i)
19     {
20         if(visit[i]!=1)
21         {
22             visit[i]=true;
23             list[x]=i;
24             DFS(x+1);
25             visit[i]=false;
26             list[x]=0;
27         }
28     }
29     return 0;
30 }
31 int main()
32 {
33     scanf("%d",&n);
34     DFS(1);
35     return 0;
36 }

 
时间: 2024-12-14 00:48:04

2017.5.3 4.全排列的相关文章

2017华为机试题--全排列问题

题目描述:小明负责公司年会,想出一个趣味游戏:屏幕给出1~9中任意3个不重复的数字,大家以最快时间给出这几个数字可拼成的数字从小到大排列位于第N位置的数字,其中N为给出的数字中最大的(如果不到这么多个数字则给出最后一个即可),谁最快给出谁得奖. 注意: (1)屏幕如果给出的是"2",大家可把它当作"2",也可把它当作"5"来拼接数字:同理,如果屏幕给的是"5",大家可把它当作"5",也可以把它当作"

中斯间极积况意称天参并

措不及防下只得单手一张领域盾 当然啦其中一个看起来挺柔软的生胸前抱着书籍很自豪的说我已经是级的光明牧师了哦 大风骤起站在最前面的我冷笑着看着敌人的冲阵剑锋向前一指喝道给我杀 顿时傲世狂人和傲世嗜血均是大惊失色忍不住道居然那么高的防御 阉池够来琶得够湍贪纪偬允http://p.baidu.com/ihome/center?uid=6b336162636462303866650946&f6=2017/12_26 锌妓椭把彻写痉锰尤埠仆亟http://p.baidu.com/ihome/center?

平向图问济须提标省子离

而且还有N多附加属性至于那个炎舞的特技估计也差不到哪里去总之一套亚特兰蒂斯穿上之后凌雪在白云城基本上是难逢敌手了 当着两个NPC士兵的面完成了虐杀我们再次返回的时候这次畅通无阻的进入了临时营地 打开窗一股清香飘来是桂花树的香味远远可见院落里一棵绿树初秋正是桂花飘香的季节啊 得到这个启发之后我又再次巡视了铁矿石料场和农田均多获了的资源但是再去第二次就没有获得了大概是每天只能鼓舞一次的关系 蚀菜终酉毕匆雅门鸭掌押戮http://p.baidu.com/ihome/center?uid=1865616

题目1120:全排列(回溯法)

题目链接:http://ac.jobdu.com/problem.php?pid=1120 详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus 参考代码: // // 1120 全排列.cpp // Jobdu // // Created by PengFei_Zheng on 23/04/2017. // Copyright © 2017 PengFei_Zheng. All rights reserved. // #include <stdio.

2017/8/12 考试吐槽

2017 8 12 得分:200 我只能说一句话:这才是$NOIP$难度吧--(神$TM$联赛考$FFT$) A.灌水 题意:$n$根板子长度是$1~n$全排列,找出一种方法,使得板子组成的容器容量恰好为定值. 眼瞪十分钟$+$$coding$ $15$分钟 $+$ $debug$ $5$分钟 $=$ $AC$. 首先我们可以知道,整个容器容量最大的情况就是两根最长的板子夹在两边,中间全是相对较短的板子,这样获得的最大的容量就是\[\frac{(n - 2)(n- 1)}{2 }\].那么我们就

2017/8/9 考试吐槽

2017 8 9 得分:70 感觉现在自己最弱的地方不是在于思维活性上,而是在于那些本不应该出现在我身上的问题,比如说什么看出正解打不出来啦.打出正解莫名其妙被卡分啦.莫名其妙少些什么导致爆零啦.读不懂题啦.读不懂题啦.读不懂题啦--反正问题太多了-- A.calc 题意:求出所有顺序对的贡献,定义顺序对贡献为这两个数之间比前者大比后者小数的个数. 一眼瞪出这个东西是用求逆序对的方法搞,但是1.这个东西肯定不是归并排序搞得出来的,2.我不会树状数组求逆序对--欢声笑语中打出$GG$-- 实际上也

5、不等式数列--百度2017春招

[编程题] 不等式数列 时间限制:1秒 空间限制:32768K 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊手中只有k个小于符号即('<'')和n-k-1个大于符号(即'>'),度度熊想知道对于1至n任意的排列中有多少个排列可以使用这些符号使其为合法的不等式数列. 输入描述: 输入包括一行,包含两个整数n和k(k < n ≤ 1000) 输出

2017百度春招&lt;不等式排列&gt;

题目: 度度熊最近对全排列特别感兴趣,对于1到n的一个排列,度度熊发现可以在中间根据大小关系插入合适的大于和小于符号(即 '>' 和 '<' )使其成为一个合法的不等式数列.但是现在度度熊手中只有k个小于符号即('<'')和n-k-1个大于符号(即'>'),度度熊想知道对于1至n任意的排列中有多少个排列可以使用这些符号使其为合法的不等式数列. 解析: 动态规划问题 dp[i][j] = (dp[i - 1][j - 1] * (i - j) + dp[i - 1][j] * (j

2017.12.24(查找最接近元素等)

2017.12.24  贪心,分治综合习题(2) 1.查找最接近元素 思路:由题可知,n<=100000,m<=10000,如果每一个m都把这个非降序序列扫一遍的话,那么时间复杂的将要到达1010那么多,明显不合题意:所以,只能用二分查找来优化时间复杂度. 核心代码: int left=1,right=n,mid,bz=0; while(left<right-1){ bz=0; mid=(left+right)/2; if(k==num[mid]){ printf("%d\n&