POI2014

studentDL發表於2024-05-01

P3579 PAN
\([a,b]\) 記憶體在 \(k\) 的倍數,等價於 \(k \lfloor \frac{b}{k} \rfloor>=a\)。這是因為 \(k \lfloor \frac{b}{k} \rfloor\) 是不超過 \(b\) 的最大的 \(k\) 的倍數。
考慮列舉最大公因數 \(g\)。由上 \(g\) 合法等價於 \(g \lfloor \frac{b}{g} \rfloor>=a\)\(g \lfloor \frac{d}{g} \rfloor>=c\)
則對於所有 \(\lfloor \frac{b}{g} \rfloor\)\(\lfloor \frac{d}{g} \rfloor\) 都相等的 \(g\),我們只需要其中最大的一個。我們可以用略作改變的整除分塊做到這一點。
複雜度 \(O(\sqrt{b}+\sqrt{d})\)