题目大意
定义S 为十进制只由4 和7 组成的全体正整数的集合。
对于1 ≤ i ≤ N,给定ai。要求完成M 个操作:
add l r v 将i ∈ [l, r] 的所有ai 加上v
count l r 统计有多少i 满足i ∈ [l, r] 且 ai ∈ S
模型转换
题目给出条件
ai>=1,v>=1,所有操作结束后所有a不会超过10000。
由于v是正数,这说明任何操作结束后a都不会超过10000。
统计10000里,S集合内的数有30个。
那么我们可以枚举这30个数,接下来便可以转换模型:
有两个操作,一个是区间加,另一个是询问区间内有多少个数等于x?
分块
分块大法好!
分块大法好!
分块打法好!
卡常来时把命保!
暴力的正解分块大法!
我们进行分块,每一块维护一个桶和加标记。
则询问的若是x,便相当于询问区间原本有多少个数为x-add标记。