#25530: 計算每個 x 的上下限 & 注意精度


allllllan123456 (God of Computer Science)

學校 : 國立臺灣大學
編號 : 13732
來源 : [140.109.20.138]
最後登入時間 :
2021-07-08 17:41:52
d135. 00143 - Orchard Trees -- UVa143 | From: [125.231.121.9] | 發表日期 : 2021-05-29 20:57

如題,每個 x 坐標垂直切一刀,如果有跟三角形相割,都必定會跟至少兩條三角形的邊有交點,取上界的 floor 和下界的 ceil 就能分別得到 x 坐標在此三角形內的最上格子點 & 最下格子點,注意最高只能到 99 最低只能到 1,相減加 1 就能知道這條垂直線上的點數量,加總 x=1 ~ 99 就是答案。

另外這題很考驗精度,不只輸入要另外處理不能直接讀 double,比較最上 & 最下格子點的時候也不能把 double 算出來再去比,要用有理數的方式比較,頗麻煩的,要 AC 還是要花點心思。

 
#25920: Re:計算每個 x 的上下限 & 注意精度


allllllan123456 (God of Computer Science)

學校 : 國立臺灣大學
編號 : 13732
來源 : [140.109.20.138]
最後登入時間 :
2021-07-08 17:41:52
d135. 00143 - Orchard Trees -- UVa143 | From: [125.231.133.241] | 發表日期 : 2021-07-04 17:32

如題,每個 x 坐標垂直切一刀,如果有跟三角形相割,都必定會跟至少兩條三角形的邊有交點,取上界的 floor 和下界的 ceil 就能分別得到 x 坐標在此三角形內的最上格子點 & 最下格子點,注意最高只能到 99 最低只能到 1,相減加 1 就能知道這條垂直線上的點數量,加總 x=1 ~ 99 就是答案。

另外這題很考驗精度,不只輸入要另外處理不能直接讀 double,比較最上 & 最下格子點的時候也不能把 double 算出來再去比,要用有理數的方式比較,頗麻煩的,要 AC 還是要花點心思。


https://alan23273850.github.io/Online-Judge-Problems/zerojudge/d135/

 
ZeroJudge Forum