浅谈整除分块求R的推导

简单介绍一下怎么推整除分块的R,过程不严谨,但是实用。

套路都是设k等于乘除分块的那个式子,让乘除分块里面式子>=k,然后解出i关于k的式子,把k带入(k代表的式子里的i取L),此时i取等于号的值就是R。下面看过程就懂了

  1. ∑ 1 n ⌊ n i ⌋ \sum_{1}^{n}{\lfloor{\frac n{i}}\rfloor} 1nin
    在这里插入图片描述
    然后令右边的i为L。算出来左边的i值就是R了

上取整的整除分块咋搞
2. ∑ 1 n ⌈ n i ⌉ \sum_{1}^{n}{\lceil{\frac n{i}}\rceil} 1nin
先转化成下取整,然后跟上面那个一样的套路
在这里插入图片描述
3.1. ∑ 1 n ⌊ n a ∗ i + b ⌋ \sum_{1}^{n}{\lfloor{\frac n{a*i+b}}\rfloor} 1nai+bn
在这里插入图片描述
为什么要乘除分块里面的式子>=k呢,可以理解为不下取整肯定比下取整要大或者等于

推导过程比较简略,如果有错误的地方麻烦指出!

模板,具体的r要推导出式子,然后注意r不能超范围。

		for(int l=1,r;l<=n;l=r+1)
		{
			r=get(m-1,l);
			r=min(r,n);
			int right=((m-1)/l+1)*l;
			ans=min(ans,n-l+right-m);
			//cout<<l<<' '<<r<<endl;
		}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值