作者tkcn (小安)
看板Prob_Solve
标题Re: [请益] SPOJ9 DIRVS
时间Sat Nov 27 23:31:54 2010
花了很多时间终於 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