一、康托展开:全排列到一个自然数的双射 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! ai为整数,并且0<=ai<i(1<=i<=n) 适用范围:没有重复元素的全排列 二、全排列的编码: {1,2,3,4,...,n}的排列总共有n!种, ...
分类:
其他好文 时间:
2017-07-15 18:52:55
阅读次数:
131
我排第几个 时间限制:1000 ms | 内存限制:65535 KB 难度:3 我排第几个 时间限制:1000 ms | 内存限制:65535 KB 难度:3 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? A B ...
分类:
其他好文 时间:
2017-07-15 17:55:52
阅读次数:
200
题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1060 题解:如果是不重复数的这些操作可以用康托展开的逆来求,如果是有重复数字出现康托展开的逆就要稍微变一下。要除去自身个数的组合数具体看一代码,暴力就行 ...
分类:
其他好文 时间:
2017-07-09 13:42:51
阅读次数:
128
在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。 输 ...
分类:
其他好文 时间:
2017-06-04 23:04:36
阅读次数:
418
例题 1 ~ n 的排列是有序的。如 (1, 2, 3) 按从小到大排列一共有 6 个: 123,132,213,231,312,321, 每个序列分别可以代表数字:1, 2, 3, 4, 5, 6 现在已知 n 和一个共 n 个数的排列,请问它对应的十进制数是多少。 解析 例如 n = 4,排列 ...
分类:
其他好文 时间:
2017-05-02 16:44:39
阅读次数:
150
我排第几个 时间限制:1000 ms | 内存限制:65535 KB 难度:3 我排第几个 时间限制:1000 ms | 内存限制:65535 KB 难度:3 现在有"abcdefghijkl”12个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? 看了这 ...
分类:
其他好文 时间:
2017-04-29 16:14:09
阅读次数:
249
题目:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2297 前置技能:(千万注意是从0开始数的 康托展开表示的是当前排列在n个不同元素的全排列中的名次。比如213在这3个数所有排列中排第3。 那么, ...
分类:
其他好文 时间:
2017-04-28 18:23:01
阅读次数:
223
康托展开:求一组数在全排列中第几小 例如:{1 ,2, 3, 4, 5, 6} 求 135264 在全排列中的第几小? 时间复杂度: 康托展开 O(n) 原理: 康托展开的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为 ...
分类:
其他好文 时间:
2017-02-16 11:01:23
阅读次数:
179
新姿势康托展开。。 裸的康托展开&逆康托展开 康托展开就是一种特殊的hash,且是可逆的…… 康托展开计算的是有多少种排列的字典序比这个小,所以编号应该+1;逆运算同理(-1)。 序列->序号:(康托展开) 对于每个数a[i],数比它小的数有多少个在它之前没出现,记为b[i],ans=1+∑b[i] ...
分类:
其他好文 时间:
2017-02-10 22:00:31
阅读次数:
168
http://acm.hdu.edu.cn/showproblem.php?pid=1043 题意:给出一个八数码,求出到达指定状态的路径。 思路:路径寻找问题。在这道题里用到的知识点挺多的。第一次用双向BFS来做。 ①双向BFS 在单向BFS的基础上,多建一个从终止状态开始搜索的队列,当然这个时候 ...
分类:
其他好文 时间:
2017-01-22 15:10:18
阅读次数:
274