想问一下关于 ZJ-c710 这题的离线处理,题目是标准RMQ类型
一般莫队算法是处理离线问题的代表,ZJ-b417的区间众数是经典
但是这题要取余数该怎么下手呢?应该不可能将各个数字计算个数...
虽然题目的标签处提示是期望空间复杂度为 O(N+M)。
N 应该原始数据,M 代表所有的查询需要储存达到符合离线的作法,
但具体的方式就完全卡住。
解法:
( 离线处理=>莫队 ) 89%(11% TLE,卡在当除数很小但是暴力法查询倍数导致的TLE)
根据theshold决定采用莫队还是前缀和计算
订一个 threshold 来决定当除数小于时透过‘前缀和’计算区间内可以被该除数整除
的个数,因为前缀和的计算方式整体内存空间不能过大(√NxN太大,所以才把
threshold调降为50),若大于等于则采用莫队算法处理,
这时即便是暴力查询倍数时间成本也是K√N,K=√N/threshold。