Codeforces Round #701 (Div. 2) C. Floor and Mod
题意
给定 x , y x,y x,y,询问当 1 ≤ a ≤ x , 1 ≤ b ≤ y 1\le a\le x,\ 1\le b\le y 1≤a≤x, 1≤b≤y时, ⌊ a b ⌋ = a m o d b \lfloor \frac a b \rfloor=a\ mod\ b ⌊ba⌋=a mod b的对数
限制
1 ≤ x , y ≤ 1 0 9 1\le x,y\le 10^9 1≤x,y≤109
思路
(想法有很多种,本文主要通过分块求解)
(并没有那么难,但为什么总是往难的方向想呢……)
读懂题意后如果用公式化简
根据 a m o d b = a − ⌊ a b ⌋ ∗ b a\ mod\ b=a-\lfloor \frac a b \rfloor*b a mod b=a−⌊ba⌋∗b,最多只能够化到 a = ( b + 1 ) ∗ ⌊ a b ⌋ a=(b+1)*\lfloor \frac a b \rfloor a=(b+1)∗⌊ba⌋
可得 a b + 1 = ⌊ a b ⌋ \frac a {b+1}=\lfloor \frac a b \rfloor