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