码迷,mamicode.com
首页 > 其他好文 > 详细

八数码难题

时间:2018-07-14 22:18:49      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:康拓展开   就是   利用   拓展   排列   数码   哈希   运用   思路   

本题有写法好几个写法,但主要思路是BFS:
No。1
采用双向宽搜,分别从起始态和结束态进行宽搜,暴力判重。如果只进行单向会超时。

No。2
采用hash进行判重,宽搜采用单向就可以AC。

No。3
运用康拓展开进行判重,即使采用单向宽搜时间效率也很高。

哈希是想到了,但是我们应该选择什么哈希函数呢,看了网上一些神牛利用的是"康托展开",也就是利用全排列都有一个对应的整数,利用哈希函数把状态压缩成整数,这样就可以做到每一个整数都是唯一对应一个状态,那么这个时候就把哈希做完了。

八数码难题

标签:康拓展开   就是   利用   拓展   排列   数码   哈希   运用   思路   

原文地址:https://www.cnblogs.com/Roni-i/p/9311095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!