java 线段树 区间更新_线段树(区间更新+区间最大)

https://nanti.jisuanke.com/t/42387

题意:n(1 <= n <= 1e5)个数,初始为1,有q(1 <= q < =1e5)次询问,两种操作。1、mul  l ,r , x 区间[l , r]乘以x(1 <= x <= 10)。2、 query l , r 询问区间[l , r]每个数分解质因数最大指数的最大值。

解法:理解题意后知道,就是在统计区间每个数的质数(2 ,3, 5, 7)个数,每个数质数的指数最大值的区间最大值。

维护四颗线段树(2,3,5,7)分别统计质数个数,查询每一棵树区间最大值,四棵树中的最大值即为答案。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

typedef long long ll ;

#define int ll

#define mod 1000000007

#define gcd __gcd

#define rep(i , j , n) for(int i = j ; i <= n ; i++)

#define red(i , n , j) for(int

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值