2010年3月22日 星期一

UVa 587 There's treasure everywhere!

解題策略

給一張藏寶圖,記載著如何找到寶藏的指令,要算出最終寶藏的確切位置跟及離出發點的距離。這題是典型的模擬題,照著題目要求在平面座標上四處移動就行了。

我在兩個地方稍微傷了點腦筋
  1. 這題的input parsing不好做,或者說用c++ std IO有點麻煩。
    operator>>切字串時不能選擇delimeter,用getline 來切也不能設定超過一個delimeter,可是這題偏偏就有兩個-逗點跟句點。我不想自己切,最後就把字串內的逗點跟句點都換成空白,這樣就能用上stringstream了。
  2. 浮點數誤差:這題送去ZJ後,我拿到一個WA結果如下
您的答案為: The treasure is located at (0.000,-0.000).
正確答案為: The treasure is located at (0.000,0.000).
怎麼會有負零呢!?  應該不是負零,是個非常非常小的負數,因為浮點數不夠精確才產生的誤差,加上一個EPS修正就行了。(不過事實上我對EPS的觀念還不是很懂..orz)

解決這兩項大概就沒問題了,AC get。