码迷,mamicode.com
首页 > 其他好文 > 详细

整除分块的向上向下取整写法

时间:2020-07-28 22:44:41      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:简单   注意   整数   向上取整   rac   情况   一个   等于   class   

对于向上取整

\(\sum_{i=1}^{n} \left \lceil \frac{n}{i} \right \rceil\)

\(\left \lceil \frac{n}{i} \right \rceil=m\)

对于相同的\(m\) ,满足

\(i*(m-1)< n\le i*m\)

\(\frac{n}{m}\le i<\frac{n}{m-1}\)

因为\(i\)是整数

\(\frac{n}{m}\le i\le \frac{n-1}{m-1}\)

所以对于当前找到的一个左端点\(i\),求出对应的\(m\),然后算出值\(m\)相同的区间的右端点就好了

注意在向上取整的时候要特判\(m=1\)的情况,右边界为\(n\),不然会出现\(\frac{n}{0}\)导致RE

向下取整超级简单,更好推还不用特判

对于点\(i\),右边界就等于

\(\left\lfloor \frac{n}{\left\lfloor\frac{n}{i}\right\rfloor}\right\rfloor\)

整除分块的向上向下取整写法

标签:简单   注意   整数   向上取整   rac   情况   一个   等于   class   

原文地址:https://www.cnblogs.com/zjjws/p/13393858.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!