package edu.cqu.algorithmTest; import java.util.Scanner; // 全排列,递归实现 public class Main8 { public static void main(String[] args) { int[] arr = { 1, 2,... ...
分类:
编程语言 时间:
2019-03-03 12:23:35
阅读次数:
199
排列与组合公式 从n个不同元素中任取r个,求取法个数; 排列要求次序,组合不讲次序; 全排列:$A^n_n=n!$ 选排列:$A_n^r=\frac{n!}{(n r)!}=n(n 1)...(n r+1)$ 组合:$C_n^r=\binom{n}{r}=\frac{n!}{r!(n r)!}=\f ...
分类:
其他好文 时间:
2019-03-01 18:33:56
阅读次数:
298
问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。 当N很小的时候,小明可以很快 ...
分类:
其他好文 时间:
2019-03-01 12:31:39
阅读次数:
145
九宫格问题:递归全排列,非递归的全排列(itertools库);所有的解;16宫格:48个完美解。
分类:
其他好文 时间:
2019-02-27 17:30:57
阅读次数:
279
问题描述 100 可以表示为带分数的形式:100 = 3 + 69258 / 714。 还可以表示为:100 = 82 + 3546 / 197。 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。 类似这样的带分数,100 有 11 种表示法。 100 可以表示为带分数的形式:100 ...
分类:
其他好文 时间:
2019-02-26 01:06:13
阅读次数:
234
题目传送门 思路: 区间合并线段树的题,第一次写,对于一颗子树,无论这个子树怎么交换,都不会对其他子树的逆序对造成影响,所以就直接算逆序对就好。 注意叶子节点是1到n的全排列,所以每个权值都只会出现1次,合并很好写。 注意动态开点,最多n个叶子节点,然后每次查询用到log个子树节点,(这句话似乎有语 ...
分类:
其他好文 时间:
2019-02-23 01:00:25
阅读次数:
215
结果为:显然,combinations方法重点在组合,permutations方法重在排列。还有就是,combinations和permutations返回的是对象地址,原因是在python3里面,返回值已经不再是list,而是iterators(迭代器), 所以想要使用,只用将iterator 转 ...
分类:
编程语言 时间:
2019-02-21 15:53:37
阅读次数:
461
题目传送门 题意: 给你n和k,你每次能交换n的两个位,问最多k次后的最小和最大值 思路: 考虑到n到1e9,所以可以用全排列来暴力,但是我们不能全排列之前的数位, 因为n中的位数可能相等,那样很难计算交换次数,因此我们只能全排列下标 然后我们要怎样计算每次排列的交换次数,这里用到了循环节 比如:0 ...
分类:
其他好文 时间:
2019-02-20 19:58:30
阅读次数:
170
[toc] 题目链接 " Permutations II LeetCode" 注意点 不确定有几种排列 解法 解法一:因为有重复的数字所以排列的个数不确定几个,一直生成新的排列直到和原始的数列相同为止 小结 利用 "Next Permutation LeetCode" 的函数来求下一个全排列 ...
分类:
其他好文 时间:
2019-02-17 20:39:36
阅读次数:
173