Re: [請益] SPOJ9 DIRVS

看板Prob_Solve (計算數學 Problem Solving)作者 (小安)時間14年前 (2010/11/27 23:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
花了很多時間終於 AC 這題了 Orz 我的作法是就跟我在推文說的一樣, 用 BFS 然後再對每一格檢查是否看得到起點、終點。 對於 (x1,y1) 是否看得到 (x2,y2), 我的檢查方法是,用平面與直線求交點的方式, 平面指的是 x=x1+1, x=x1+2, ..., x=x2 (設 x2>x1) 計算出交點在哪,檢查對應那幾格有沒有障礙物。 另外我覺得有個不合理的地方, 例如下面這地圖: 3 0 0 3 在這情況裡頭,兩個 0 是可以互相看到對方的 (我肯定) 當然下面這種情況,兩個 1 也是: 3 3 0 1 1 0 3 3 y 平面也是一樣, 若兩次檢查都通過就表示兩個點存在 direct visibily 最後是關於時間的部份, 我只是盡量減少一些基本的運算,就勉強擠到合法的時間內了, 尤其我又是用 java, 所以我想這題的時間限制並沒有一開始我想的那麼嚴苛。 -- T$,修好它吧。 ⊙─ ─⊙▂⊙ 碰到問題,用SoftICE就對了! █◤ Lee T$ Chen MYTHBUGTERS by dajidali -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.78.231
文章代碼(AID): #1CyIHkFm (Prob_Solve)
文章代碼(AID): #1CyIHkFm (Prob_Solve)