整除分块(数论分块)

问 : 求 ∑ i = 1 N ⌊ N i ⌋ , N ≤ 1 0 12 问:求\sum^{N}_{i=1}⌊\frac{N}{i}⌋,N\leq10^{12} i=1NiN,N1012

思 考 性 质 : 思考性质: :
( 1 ) . ⌊ N i ⌋ 最 多 只 有 2 N 种 取 值 (1).⌊\frac{N}{i}⌋最多只有2N种取值 (1).iN2N
( 2 ) . 设 ⌊ N i ⌋ = ⌊ N i ′ ⌋ , 则 i ′ 的 最 大 值 为 ⌊ N ⌊ N i ⌋ ⌋ (2).设⌊\frac{N}{i}⌋=⌊\frac{N}{i′}⌋,则i′的最大值为⌊\frac{N}{⌊\frac{N}{i}⌋}⌋ (2).iN=iNiiNN

整 除 分 块 : 整除分块:
设两个指针 LRL 的初始值为 1 1 1 ,每次令 R = = = ⌊ N ⌊ N L ⌋ ⌋ ⌊\frac{N}{⌊\frac{N}{L}⌋}⌋ LNN,将 ( ( (R − − L + + +1 ) ) ) ⌊ N L ⌋ ⌊\frac{N}{L}⌋ LN 累加至答案中 ,再令 L = = =R + 1 +1 +1

由于 ⌊ N L ⌋ ⌊\frac{N}{L}⌋ LN 只有 2 N 2\sqrt{N} 2N 种取值 ,且单调递减,则最多只有 2 N 2\sqrt{N} 2N 个取值不同的段,时间复杂度为 O ( N ) O(\sqrt{N}) O(N )

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值