Codeforces Round #701 (Div. 2) C

时间:2021-03-06 14:13:16   收藏:0   阅读:0

C. Floor and Mod

 

给定x,y,求满足条件 
? a / b ? = a mod b

这样的整数对在(a  <= x)(b <= y)上的数量。

 

分析条件式子:? a / b ? = a mod b, 不妨令k == a mod b == ? a / b ? ,可以得出:a == k * (b + 1),并且 k < b && k * k <= a。

我们发现,对任意一个k,只要a <= x && b <= y && k < b即可成立,将第一个条件转移到b上,即 k * (b + 1) <= x 即 b <= x / k - 1 。

换句话说,b的上限是 min(y, x / k - 1),b的下限是k + 1,对于这其中任意一个整数b,均存在对应的a使得等式成立。所以跑一遍枚举即可。

技术图片

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!