#14: 割草終戰:條件與除法


nevikw39 ($\mathscr{nevikw}\pmb{39}\in\m...)

學校 : 一中
編號 : 4
來源 : [140.114.207.96]
最後登入時間 :
2023-02-14 20:37:38
c019. ⅱ. 割草終戰 $\mathtt{(recall)}$ | From: [162.158.243.120] | 發表日期 : 2020-07-03 20:03

本題雖然就是個水題,但是有不少陷阱。

首先,由於 $n$ 的範圍 $2^{64}$ ,因此必須 C++ 使用 uint64_t。其次,達到四分之一的門檻是 $\geq$ 而同意大於不同意則是 $>$,但須注意 C++ 的除法總是向零取整,假若寫成 a >= n / 4 則會存在誤差。另外,Python 使用 `/' 運算子的結果是 float,其誤差在 $n$ 很大時誤差將很明顯。

因此,比較好的條件式是 a * 4 <= n \&\& a > b,當然你若偏好位元運算可以寫成 a << 2

加入討論群組以取得完整解析

 
ZeroJudge Forum