E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
康托展开
面试:如何找出字符串的字典序全排列的第N种
(字符串全排列的变种) 2.思路 主要想通过这题,介绍一下
康托展开
式。基于
康托展开
式可以解决这个问题。
·
2015-11-12 22:28
字符串
ACM-
康托展开
+预处理BFS之魔板——hdu1430
魔板 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1679 Accepted Submission(s): 354 Problem De
·
2015-11-12 16:40
ACM
CF501D Misha and Permutations Summation(
康托展开
)
将一个排列映射到一个数的方法就叫做
康托展开
。
·
2015-11-12 12:58
mat
UVALive 6665 Dragonâs Cruller --BFS,类八数码问题
分析:其实跟八数码问题差不多,用
康托展开
记录状态,bfs即可。
·
2015-11-12 10:33
drag
对
康托展开
的一些心得...
康托展开
: 对于全排列中形成的一个数组,可以知道他是排列中的第几种...具体公式为: X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!
·
2015-11-11 19:02
心得
Poj 1077 Eight 八数码
求八数码的解,输出x的移动方式(输出步数最少的解,但是也可能会有多解,所以是special judge) 如果判断8数码有没有解可以用逆序数求,找出规律即可求解 解法一:搜索(没写过) 解法二:
康托展开
·
2015-11-09 12:31
poj
·专题」 Hash
下面应该会总结 整数的hash(线性的,
康托展开
) 字符串Hash( ELFHash, 多项式Hash, BKRDHash) Hash的灵活应用 Hash函数运用很广,自己见识浅薄
·
2015-11-08 16:57
hash
HDU 1043 Eight (A* + HASH +
康托展开
)
Eight Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13956 Accepted Submission(s): 3957 Special J
·
2015-11-08 16:12
hash
康托展开
转自维基百科
康托展开
是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。
康托展开
的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。
·
2015-11-08 16:12
康托展开
公式
康托展开
: X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0!
·
2015-11-08 11:29
康托展开
与逆
康托展开
讲解
康托展开
与逆
康托展开
。
·
2015-11-08 10:37
OJ
用
康托展开
实现全排列(STL、itertools)
其中,a为整数,并且0<=ai<i(1<=i<=n) 这个式子就是
康托展开
,初看同排列没什么关系,实则不
·
2015-11-08 09:20
tools
UVALive 6669 (LA 6669) Dragon’s Cruller (
康托展开
+ 最短路)
,另外一个是空格,现在给出了一个表分别表示A~I位置能到达的位置和需要的代价需要的代价只有两种每次可以移动一个块到空位置为从一个状态最小需要多少代价变成另外一种大致思路:首先对于一个当前的游戏状态,用
康托展开
来记录当前状态
u013738743
·
2015-11-08 09:00
最短路
uvalive
la
康托展开
Cruller
6669
Dragons
6669
康托展开
其中,a为整数,并且0<=a<i,i=1,2,..,n 这就是
康托展开
。
·
2015-11-07 15:41
POJ 1077 Eight bfs
这题一开始做,什么优化都没做, 直接MLM+TLM, 后来用了
康托展开
+双向bfs过了,注意这题答案不唯一,开始与sample
·
2015-11-07 13:09
poj
sicily 1150 简单魔板 & 1151 魔板 bfs
典型的bfs, 第一个是自己写的没有做任何优化,需要8^8的空间保存状态 后来看了别人解题报告,学会了
康托展开
,全排列压缩,只需要8!
·
2015-11-07 13:07
bfs
康托展开
康托展开
的公式 把一个整数X展开成如下形式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!
·
2015-11-05 08:59
hdu 3567 Eight II (bfs+
康托展开
+预处理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3567EightIITimeLimit:4000/2000MS(Java/Others) MemoryLimit:130000/65536K(Java/Others)TotalSubmission(s):1765 AcceptedSubmission(s):374ProblemDescrip
qiqi_skystar
·
2015-11-04 16:00
搜索
C语言
bfs
康托逆展开和
康托展开
的逆运算
百度百科有一些说明 但很难看懂 我尽可能用简单的语言来说明 学会使用
康托展开
后就能方便地解决一系列的问题 一、
康托展开
对于一个集合{1,2,3,4,...,n}的从小到大排序(或者从大到小,与从小到大类似
·
2015-11-03 22:01
运算
康托展开
和逆展开
康托展开
: 给定一个排列(由n个数排列而成),我们可以计算出该排列在由n个数组成的所有排列中排名第几(按字典序),这就是
康托展开
。
·
2015-11-03 20:15
USACO / Stringsobits (DP构造/
康托展开
)
Stringsobits [描述 考虑排好序的N(N<=31)位二进制数。 你会发现,这很有趣。因为他们是排列好的,而且包含所有可能的长度为N且含有1的个数小于等于L(L<=N)的数。 你的任务是输出第I(1<=I<=长度为N的二进制数的个数)大的,长度为N,且含有1的个数小于等于L的那个二进制数。 格式 PROGRAM NAME: kimbits
·
2015-11-02 17:34
String
康托展开
由这个问题引出了
康托展开
这种方法 1.公式 把一个整数X展开成如下形式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[2]*1!
·
2015-11-02 16:32
康托展开
康托展开
康托展开
的公式是 X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...+a2*1!+a1*0! 其中,ai为当前未出现的元素中是排在第几个(从0开始)。
·
2015-11-02 10:44
hdu1430魔板(BFS+
康托展开
)
做这题先看:http://blog.csdn.net/u010372095/article/details/9904497 Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板。魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示。任一时刻魔板的状态可用方块的颜色序列表示:从魔板的左上角开始,按顺时针方向
·
2015-11-02 10:37
HDU
hdu1043Eight (经典的八数码)(
康托展开
+BFS)
建议先学会用
康托展开
: http://blog.csdn.net/u010372095/article/details/9904497 Problem Description The
·
2015-10-31 13:49
HDU
HDU 1043 Eight POJ 1077 Eight (广度搜索,八数码问题,
康托展开
)
HDU 1043 和 POJ 1077 两题类似。。。但是输入不同。 HDU 上是同时多组输入,POJ是单组输入。 两个限时不同。 HDU 上反向搜索,把所有情况打表出来。 POJ上正向搜索。 这个题很经典,还需要继续做。先把第一次写的代码贴出来吧。 继续优化中 HDU 1
·
2015-10-31 11:43
poj
再议“生成全排列算法”
看了“白话算法(7) 生成全排列的几种思路(一)”和“白话算法(7) 生成全排列的几种思路(二)
康托展开
”。在此,将以前本人推导的全排列算法介绍一下,和广大的网友交流一下。
·
2015-10-31 09:47
全排列
康托展开
模板
康托展开
是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。
康托展开
的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。 以下称第x个全排列是都是指由小到大的顺序。
·
2015-10-31 09:08
模板
HDU_1430——魔板,预处理,
康托展开
,置换,string类的+操作
Problem Description 在魔方风靡全球之后不久,Rubik先生发明了它的简化版——魔板。魔板由8个同样大小的方块组成,每个方块颜色均不相同,可用数字1-8分别表示。任一时刻魔板的状态可用方块的颜色序列表示:从魔板的左上角开始,按顺时针方向依次写下各方块的颜色代号,所得到的数字序列即可表示此时魔板的状态。例如,序列(1,2,3,4,5,6,7,8)表示魔板状态为: 1 2 3
·
2015-10-31 09:44
String类
poj1077(
康托展开
+bfs+记忆路径)
可以右移r,左移l,上移u,下移dx 4 6 4 5 67 5 8 7 8 x 思路:这是赤裸裸的
康托展开
了吧
·
2015-10-30 13:40
poj
康托展开
转自CSDN 小威的专栏morgan_xww
康托展开
: X=an*(n-1)!+an-1*(n-2)!+...+ai*(i-1)!+...
·
2015-10-30 13:33
loj 1165(bfs+
康托展开
)
id=26879 思路:题目意思很简单,就是通过一些位置的交换,最后变成有序数列,对于一组序列,我们可以用
康托展开
然后hash判重。 然后就是普通的bfs,稍微留意一下细节即可。
·
2015-10-30 10:14
bfs
hdu 1430 魔板(bfs+预处理+
康托展开
)
康拓展开原理:来自:http://blog.csdn.net/zhongkeli/article/details/6966805
康托展开
的公式是X=an*(n-1)!+an-1*(n-2)!+...
qiqi_skystar
·
2015-10-29 16:00
C语言
bfs
HDU 1043 Eight(BFS打表+状态去重)
编码解码的原理是利用了
康托展开
,我们都知道,对于一个长度为n的序列,其全排列一共有n!种,利用
康托展开
我们可以快速的求出一个排列是按照字典序的第几个排列。这样我们就将每个排列(状态)与一个n!
weizhuwyzc000
·
2015-10-29 14:00
搜索
HDU
bfs
暴力
ACM-ICPC
HDU 3567 Eight II 打表,
康托展开
,bfs,g++提交可过c++不可过 难度:3
pid=3567 相比Eight,似乎只是把目标状态由确定的改成不确定的,但是
康托展开
+曼哈顿为h值的A*和IDA*都不过,而且也不好控制字典序 换个角度想,虽然起始状态有很多,但是到底哪一位是1,
·
2015-10-27 14:49
C++
POJ 1077 && HDU 1043 Eight A*算法,bfs,
康托展开
,hash 难度:3
http://poj.org/problem?id=1077 http://acm.hdu.edu.cn/showproblem.php?pid=1043 X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1
·
2015-10-27 14:48
hash
poj 1077 Eight(双向bfs)
<1>搜索算法选择:由于需要找出最短的移动路径,所以选择bfs搜索 <2>判重方法: 将空格视为数字9,则可以将状态的集合视为1-9的排列组合的集合,根据
康托展开
,将每一个状态映射到一个正整数中
·
2015-10-21 13:24
poj
STL源码——排列生成算法(next-permutation、pre-permutation)
已知一个排列,可以用
康托展开
求其序数。假设排列为,这个排列对应的序数为。
ww32zz
·
2015-10-11 16:00
算法
STL
hdu 1430 魔板
刚开始不知道有
康托展开
,一筹莫展,查了一下大神题解。看到说要用
康托展开
,遂跑去学。
qq_31457873
·
2015-10-03 22:00
bfs
康托展开
洛谷9月noip模拟赛
第一题:求一个排列是第几小(字典序)用
康托展开
。例如求3214的字典序。我们从高位开始比较,比3小的有两位,即2*3!=12,再比较下一位2,比2小的只有1,且1没有用过,所以再加1*2!
Cynthia_wjyi
·
2015-09-22 23:14
康托展开
和逆展开
康托展开
:对于1~n的所有排列,要确定某个排列是字典序中第几个排列,可用
康托展开
。这个技巧在做对排列的hash时十分有用,因为不需要使用set来记录那些大于int最大值的数字了。
Baoli1008
·
2015-08-29 09:35
数论
数学
康托展开
和逆展开
康托展开
:对于1~n的所有排列,要确定某个排列是字典序中第几个排列,可用
康托展开
。这个技巧在做对排列的hash时十分有用,因为不需要使用set来记录那些大于int最大值的数字了。
Baoli1008
·
2015-08-29 09:00
康托展开
vijos - P1092全排列 (
康托展开
+
康托展开
的逆运算)
P1092全排列Accepted标签:[显示标签]描述输入两个自然数m,n1 #include #include #include #include #include #include #include #include #include #include #include usingnamespacestd; #definepbpush_back #definempmake_pair #de
qq_18661257
·
2015-08-21 23:00
康托(逆)展开(2015.8.6)
康托展开
X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0!其中,a[i]为整数,并且X=a[n]*(n-1)!+a[n-1]*(n-2)!
OhYee
·
2015-08-06 11:00
hdu 1027
康托展开
求全排列
他们间的对应关系可由
康托展开
来找到。如我想知道321是{1,2,3}中第几个小的数可以这样考虑:第一位是3,当第一位的数小于3时,那排列数小于321如123、213,小于3的数有1、2。所以有2*2!
EzCUfST
·
2015-07-28 15:11
hdu
数论
【启发式搜索】八数码问题
首先就是f(n)=g(n)+h(n)这个h(n)就是估价函数,然后每次更新一下g(n)然后用
康托展开
,搞一下判重就好了。
JeremyGJY
·
2015-07-23 13:00
暴力搜索
启发式搜索
SRM 638 Div2
我还用
康托展开
了真是多此一举。。 1000 这题理解错题意了。。 我说看别人代码怎么看着不正确劲来着 只是还是很easy的一道题 二进制枚举烧哪些叶子结点 然
·
2015-07-22 16:00
div
UVALive 6665 最短路
解题思路:这个题用bfs+
康托展开
写的结果超时,后来从网上学了一个最短路的写法,速度很快。每种状态压缩成一个整数,每种
u013573047
·
2015-07-05 12:00
kuangbin带我飞 专题二 搜索进阶 第一题 HDU1043(双向BFS+
康托展开
)
康托展开
:http://www.cnblogs.com/hxsyl/archive/2012/04/11/2443009.html开个结构体node2存当前的string,并且存它的x出现在哪个位置,然后把
Miracle_ma
·
2015-07-01 16:00
ACM
CodeForces 501D – Misha and Permutations Summation(康托/逆
康托展开
+树状数组+二分)
思路:很明显的康托/逆
康托展开
。难点在于如何快速求解康托/逆康托以及模n!上。
kkkwjx
·
2015-04-22 12:00
树状数组
二分
康托展开
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他