?? 題意:一個元素為 1~n 的數列{An},有2種操作(1000次):
1、求某段區間 [a,b] 中與 p 互質的數的和。
2、將數列中某個位置元素的值改變。
思路:先預處理求出1到400000所有數的質因子保存起來。
這個問題可以轉化為求[1,R]之間與p不互素的數的和,這個可以用容斥原理來做,然後用區間和減去這個值就是答案,這是靜態的做法。
如果有修改的話,我們注意到修改次數很少,可以把所有修改用map存起來,對於當前的每次操作,把之前的修改遍歷一遍就可以了,時間復雜度為O(m*m*logn)。
#include
#include
#include
#include
#include
#include
#include
#include