传送门:https://codeforces.com/contest/1485/problem/C
题意
$给一个x和y,求\left \lfloor \frac{a}{b}\right \rfloor =a\;mod\;b成立的个数。$ $1\leq a \leq x\;\;\;1\leq b \leq y$
思路
显然这题是围绕$\left \lfloor \frac{a}{b}\right \rfloor =a\;mod\;b.$ 没有限制的话,会有b-1个(0不存在)。
我们可以手推出$\frac{3}{2},\frac{4}{3}$都可以,并且$\frac{8}{3}$也可以。 所以$\frac{b+1}{b}=1,\frac{2(b+1)}{b}=2$等等。
所以我们得出来$\frac{k(b+1)}{b}=k=a\;mod\;b。k(b+1)\leq a$
枚举b,但是题目是有限制条件的,取min就行。
$$\sum_{i=2}^bmin(i-1,\frac{a}{i+1})$$
首先要算一下中间值$i-1=\frac{a}{i+1},i=\sqrt{a+1}$,最后得:
$$\sum_{i=2}^{\sqrt{a+1}}i-1+\sum_{i=\sqrt{a+1}+1}^b\frac{a}{i+1}$$
前半部分就等差数列求和,后半部分整除分块即可。
Code(62MS)
1 | # |
本文作者:jujimeizuo
本文地址: https://blog.jujimeizuo.cn/2021/02/13/codeforces-round-701-c/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!