台灣最大程式設計社群網站
線上人數
784
 
會員總數:245225
討論主題:189095
歡迎您免費加入會員
討論區列表 >> C/C++ >> A_star演算法題目求解
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
A_star演算法題目求解
價值 : 100 QP  點閱數:183 回應數:1

樓主

cyatmirror
門外漢
0 5
58 9
發送站內信

捐贈 VP 給 cyatmirror
我正在解一題zerojudge上關於a star 演算法的題目
https://zerojudge.tw/ShowProblem?problemid=d747
不知道是哪裡寫錯了
還煩請版上大大協助

我的想法是去計算每個點的 g(x)(從起點到該點的距離)/h(x)(該點到終點的曼哈頓距離)/f(X)=g(x)+h(X)
然後丟進minheap裡面
若遇到f值相同 則先pop出後進的元素(用order這個變數去計算進去heap的順序)
只是跑出來的結果
1.若沒把order納入考量,那結果會跟bfs幾乎一樣
2.若納入order,我的程式跑出來就會炸裂
ps我原本是用priority queue去做 但還是炸裂QQ

希望有大大能幫我找到錯誤
這個問題我想了一個多禮拜了QAQ
感激不盡><



搜尋相關Tags的文章: [ a start algorithm ] , [ c++ ] ,
本篇文章發表於2019-07-19 16:20
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

cyatmirror
捐贈 VP 給 cyatmirror 檢舉此回應
下面是我的ac code
但是有一行是參酌網路資料
-->(cnt[x+dx[i]][y+dy[i]]==0||cnt[x+dx[i]][y+dy[i]]>cnt[x][y]+1)
如果把這行省掉就會只拿到85%的分數
請問為甚麼不能寫成(cnt[x+dx[i]][y+dy[i]]==0||cnt[x+dx[i]][y+dy[i]]>cnt[x][y])


本篇文章回覆於2019-07-28 16:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.