src:http://acm.hdu.edu.cn/showproblem.php?pid=1027 一开始已经提过了,康托展开是一个全排列到一个自然数的双射,因此是可逆的。即对于上述例子,在(1,2,3,4,5)给出61可以算出起排列组合为 34152。由上述的计算过程可以容易的逆推回来,具体过程 ...
分类:
其他好文 时间:
2018-08-16 14:06:34
阅读次数:
218
"传送门" 题意:有N个为1或2或3的数,问用这N个数的排列方式是不是有6中以上。 思路:降智题,显然六个数以上无论这六个数是怎么组成,只要有两种数字就一定能组成6种,5种及以下我就懒得找规律了,直接全排列统计。 AC程序 using namespace std; const int maxn=10 ...
分类:
其他好文 时间:
2018-08-12 17:35:54
阅读次数:
126
非常好的一道题。一开始的思想是这样的,先把n对括号按照某一顺序生成一个string,然后用全排列算法生成所有可能,然后利用stack写一段判断括号是否匹配的字符串,匹配的假如结果中。不过会超时。因为全排列的复杂度略高,阶乘级别。而对于阶乘函数和指数函数的复杂度,显然是阶乘函数高,指数每次乘一个相同的 ...
分类:
其他好文 时间:
2018-08-09 22:04:40
阅读次数:
149
一、康托展开 问题:{1,2,3,4,5}5个数的全排列中,{2,3,1,5,4}排字典序的第几位? 解决:计算{2,3,1,5,4}的康托展开值:x=a[1]*4!+a[2]*3!+a[3]*2!+a[4]*1!+a[5]*0!=1*24+1*6+0*2+1*1+0*0=31, 所以{2,3,1, ...
分类:
其他好文 时间:
2018-08-07 12:59:15
阅读次数:
122
题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 解题思路 类似于LeetCode46.全排列,只不过对于每个起始位置维 ...
分类:
其他好文 时间:
2018-07-31 17:10:38
阅读次数:
155
题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 给定一个没有重复数字的序列,返回其所有可能的全排列。 示例: 解题思路 回溯法,从 ...
分类:
其他好文 时间:
2018-07-31 17:10:13
阅读次数:
157
一、康托展开:全排列到一个自然数的双射 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! ai为整数,并且0<=ai<i(1<=i<=n);其中X最常见的可以设为:0 <=X<=n!-1,第一个排列即123...n;该排列的X可设为0; 适用 ...
分类:
其他好文 时间:
2018-07-30 22:10:59
阅读次数:
217
我发现一个有趣的现象。。。。(暴力发现的; 233) 对于一个置换 (x1,x2,x3......xn) 定义: f(x) =a[x] 例如 【2,1,3,4】 f(2)=a[2]=1; 定义: f^2(x)=f(f(x)) 那么f^n(x)=x (! 当且仅当f^n(x)=x)置换的数目为(n-1 ...
分类:
其他好文 时间:
2018-07-30 11:14:46
阅读次数:
156
1、字符串的全排列 题目:{a,b,c}要求输出{abc,acb,bac,bca,cab,cba}。 字符串全排列可以把字符串看成两个部分,第一个部分为它的一个字符,第二部分是后面的字符。 分两步完成:首先求所有可能出现在第一个位置的字符,即把第一个字符与后面的所有字符交换。第二步固定第一个字符,求 ...
分类:
其他好文 时间:
2018-07-30 00:32:34
阅读次数:
121
链接:http://codeforces.com/contest/401/problem/D 题意:给出一个数字num和m,问通过重新排列num中的各位数字中有多少个数(mod m)=0,直接枚举全排列肯定不行,可以用状压dp来搞.. dp[S][k]表示选了num中的S且(mod m)=k的方案种 ...
分类:
其他好文 时间:
2018-07-29 21:19:41
阅读次数:
115