[问题] 离线处理(已解决)

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

Links booklink

Contact Us: admin [ a t ] ucptt.com