2021-08-11 树状数组的离线询问

以牛客题目为例
在这里插入图片描述对于每一次询问要求[L,R]范围内有多少个数字与其他数互质
对于这种多次询问的一般需要把每次询问的贡献都加入到端点上,然后离线进行询问,对于每一个[L,R]的区间,区间外的其他数字不会对答案产生影响
对于m次询问,需要一次遍历将所有答案都加入在端点上,在使用类似找点对的方式进行查询,对于本题,要找到对于每一个数的对应的可行区间 (l,r),首先需要每一个数字进行质因子分解,处理出来第i个数的最大互质区间为(l,r),对于每次查询的[L,R]按照L进行排序, 若有互质区间左端超过查询区间的左端,则有可能是查询区间内的孤独数 加入树状数组, 将该数所在的位置到其互质区间的右端加1,对于后续的区间,如果有的数字不在区间内则删除即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值