IDA*-洛谷P1379 八数码难题
https://daniu.luogu.org/problem/show?pid=1379
省選的收獲
暗金
學會了A*啦啦啦;
我在第一天學了A*;
然后回家頹廢之余思考思考;
又問了van爺一些小問題;
然后就在fop_zz的 支持 嘲笑下AC了;
A*一開始感覺會很深奧;
然而就是一個剪枝而已;
呵呵呵;
這里又一個估價函數;
當前狀態的估價函數是當前在狀態理想情況下到達目標狀態的代價;
比如我們現在走了g步;
估價為H步;
然后我們迭代加深枚舉的k步(k從0開始枚舉,所以我們要預先特判無解情況,當然可以掐秒);
如果g+H>k;
顯然萎了;
就是這么簡單;
至于為什么A*是dfs不是bfs;
因為bfs沒有一個確定的k;
而dfs的k我們是枚舉的;
至于這樣的話有很多的重復;
因為假如答案是4;
那么k=0~3時的搜索是無用的;
但是在這道題目里面顯然k不是很大;
而且加入k=ans爆搜的時間復雜度是n;
那么k=0~ans的時間復雜度類似與n*n;
雖然這樣,還是比直接暴力好;
那我們可不可以把k-1的所有g==k,g==k-1的狀態存下來呢;
好像很麻煩欸;
當然樓k我們可以二分;
至于為什么我枚舉的變量是tf;
用來紀念我ZJOI2017的頹廢;
轉載于:https://www.cnblogs.com/largecube233/p/6797886.html
總結
以上是生活随笔為你收集整理的IDA*-洛谷P1379 八数码难题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 02 - Unit07:显示笔记下拉菜单
- 下一篇: oracle数据导入-dblink方式