1. 程式人生 > >八數碼難題

八數碼難題

思路 效率 全排列 hash 超時 但是 做到 利用 排列

本題有寫法好幾個寫法,但主要思路是BFS:
No。1
采用雙向寬搜,分別從起始態和結束態進行寬搜,暴力判重。如果只進行單向會超時。

No。2
采用hash進行判重,寬搜采用單向就可以AC。

No。3
運用康拓展開進行判重,即使采用單向寬搜時間效率也很高。

哈希是想到了,但是我們應該選擇什麽哈希函數呢,看了網上一些神牛利用的是"康托展開",也就是利用全排列都有一個對應的整數,利用哈希函數把狀態壓縮成整數,這樣就可以做到每一個整數都是唯一對應一個狀態,那麽這個時候就把哈希做完了。

八數碼難題