题目
https://codeforces.com/contest/1485/problem/C
思路
由$1\leq a\leq x,1\leq b\leq y,\lfloor\frac{a}{b}\rfloor=a\bmod b$得:
$\lfloor\frac{a}{b}\rfloor=a \bmod b=a-\lfloor\frac{a}{b}\rfloor b$
$\lfloor\frac{a}{b}\rfloor=\frac{a}{b+1}$
由于$\lfloor\frac{a}{b}\rfloor$为整数,所以$b+1$必定整除$a$,即$a \bmod (b+1)=0$
令$a=n(b+1) \leq x$,则
$\lfloor\frac{a}{b}\rfloor=\lfloor\frac{n(b+1)}{b}\rfloor=\lfloor n+\frac{n}{b}\rfloor=n+\lfloor\frac{n}{b}]$
结合上述得:$\lfloor\frac{n}{b}\rfloor=0$
由于$n>0$,所以$b>n$,结合b的范围得:
- $b>n$
- $n(b+1) \leq x$
- $1 \leq b \leq y$
考虑第二个范围对存在的$b$适用,所以左边取最小值,即$n(n+2)\leq x$
接着枚举$n$,则$n<b\leq\min(\frac{x}{n}-1,y)$
$b$的个数为$\min(\frac{x}{n}-1,y)-n$(注意这里没有考虑$n>\min(\frac{x}{n}-1,y)$,可以用一个max解决)
AC代码
1 |
|