【题解】P5172 [清华集训 2014] Sum
- Stern-Brocot 树:类似线段树,初始区间 \((\frac{0}{1},\frac{1}{0})\)。
设当前区间为 \((\frac{p_l}{q_l},\frac{p_r}{q_r})\),则区间中点为 \(\frac{p_l+p_r}{q_l+q_r}\)。二分一次复杂度为 \(O(n)\)。
找到最接近 \(\sqrt r\) 的分数,跑万欧。
直接做呢?
令 \(k=\sqrt r\)。
若 \(k\ge 1\),令 \(k\gets k-\left\lfloor k \right\rfloor\)。
若 \(k<1\),令 \(n\gets nk,k\gets \frac 1 k\)。
复杂度考虑每 \(O(1)\) 步一定会减半一次,复杂度 \(O(\log n)\)。
可能卡精度。
浙公网安备 33010602011771号