您的位置:首页 > 其它

hdu 1043(搜索 + 康拓展开hash)

2017-10-26 10:46 120 查看
首先搜索大家都会,然后就是对于每一种状态进行判断是否之前走过了,这里就要用到hash,然后问题就转变为如何对这个3 ×3的方格进行hash了,我们都知道我们把x当成9的话,方程的数为1 ~ 9,那么我们就能用10进制来唯一表示每一种状态,但是我们会发现这样表示出来的数太大了,所以不采用这种hash方式。

然后就学了康拓展开:0!1!2!……9!表示每一位权值

对于一个排列,看这个数后边的有多少小于他的数,那么这一位上的权值就为它。

因为每一为都可以取0 ~ i(i是0 ~ 8),所以hash出来的值范围是0~n! - 1。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: