Scape的原题,优美的线段树
题意翻译
给定数列,区间查询和,区间取模,单点修改。
n,m小于10^5
Inputs and Outputs examples
Inputs’ e.g. #1
1 | 5 5 |
Outputs’ e.g. #1
1 | 8 |
Inputs’ e.g. #2
1 | 10 10 |
Outputs’ e.g. #2
1 | 49 |
分析
Scape数据结构模拟原题赛T3.
看到单点修改这个东西,我们就可以想到线段树了吧qwq
重点是这个区间取模怎么办,我们可以证明一个数最多被取模$\log$次,那么我们就可以考虑记一个区间最大值.
当这个最大值小于模数时,我们就可以直接return
,如果大于,我们就像区间查最值一样暴力改下去即可.
代码
1 | /* Headers */ |