USACO 3.4.1 closed fence

       不得不承認這道題着實是一道好題,可惜當年我還在用PASCAL的時候壓根沒做這道題……具體詳情我想我是需要追究matt和s.p.willam(原skyprophet)兩位神牛的責任的……

      這個東西比較困難,我也不知道完美算法是什麼(或者壓根沒有完美算法???),於是我祭出了近似算法。這道題目的第一問就是簡單的判斷線段是否相交,非常簡單。由於n最大是200,所以就不用考慮O(nlogn)的掃除線法了——否則我就不會啦!第二問很有意思,問你能看到哪些線段。我們想:如果要看到某條線度,一定是通過某兩個頂點之間的夾縫看到的。當然對於直接看到的線段,目光經過的這個夾縫可以說是很大很大,但是我們可以抽象地確定它的存在。這樣我們只需要搞出來這些“夾縫”!我的想法是近似的讓目光遊離於各個頂點的四周,也就是將各個頂點想四周移動後引射線作爲目光,之後尋找具光源最近的交點所在線段,這條線段就是能被看到的之一!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章