【CH4302】Interval GCD
生活随笔
收集整理的這篇文章主要介紹了
【CH4302】Interval GCD
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
思路:線段樹維護(hù)a的差分?jǐn)?shù)組的gcd,
因?yàn)?span style="font-size:14pt;">$gcd(a_1,a_2,a_3,...,a_n)=gcd(a_1,a_2-a_1,a_3-a_2,...,a_n-a_{n-1})$。
原區(qū)間修改可以轉(zhuǎn)化為差分?jǐn)?shù)組上的兩次單點(diǎn)修改。
因?yàn)閷?shí)際計(jì)算時(shí)還需要原數(shù),所以用樹狀數(shù)組維護(hù)b的增減量。
詢問時(shí),用這條語句即可:
printf("%lld\n",abs(gcd(a[L]+szszfuc::ask(L)/*左端的原數(shù)*/,segfuc::ask(1,L+1,R))/*其它差分的gcd*/));?
注意:長(zhǎng)時(shí)間測(cè)試不對(duì),可以重寫代碼。
? ? ? ? ?? PS:n,m不可混,要時(shí)刻看題。
?
轉(zhuǎn)載于:https://www.cnblogs.com/xzs123456/p/10476173.html
總結(jié)
以上是生活随笔為你收集整理的【CH4302】Interval GCD的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: day5学python 基础+装饰器内
- 下一篇: fifo算法_缓存算法FIFO、LFU、