摘要:
我们知道,BFS是往广处去搜索,我们把这想象成一个以起点为圆心的一个圆,每向前走一步,就是圆的半径增大一个单位,而圆的每个单位面积上是一种状态,当圆增大到目标点那么大时,找到了答案,搜索结束。那么显然的,当半径较大时,每走一步就会有十分大量的状态需要来储存( S=πr² )。通常的,我们用“判重”的 阅读全文
摘要:
本题有写法好几个写法,但主要思路是BFS: No。1 采用双向宽搜,分别从起始态和结束态进行宽搜,暴力判重。如果只进行单向会超时。 No。2 采用hash进行判重,宽搜采用单向就可以AC。 No。3 运用康拓展开进行判重,即使采用单向宽搜时间效率也很高。 哈希是想到了,但是我们应该选择什么哈希函数呢 阅读全文
摘要:
康托展开(有关全排列) 康托展开:已知一个排列,求这个排列在全排列中是第几个 康托展开逆运算:已知在全排列中排第几,求这个排列 定义: X=an (n 1)!+an 1 (n 2)!+...+ai (i 1)!+...+a2 1!+a1 0! ai为整数,并且0康托展开有啥用呢? 维基:n位(0~n 阅读全文