[問題] 離線處理(已解決)

作者: 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