【CH4302】Interval GCD
生活随笔
收集整理的這篇文章主要介紹了
【CH4302】Interval GCD
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
思路:線段樹維護a的差分數組的gcd,
因為$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})$。
原區間修改可以轉化為差分數組上的兩次單點修改。
因為實際計算時還需要原數,所以用樹狀數組維護b的增減量。
詢問時,用這條語句即可:
printf("%lld\n",abs(gcd(a[L]+szszfuc::ask(L)/*左端的原數*/,segfuc::ask(1,L+1,R))/*其它差分的gcd*/));?
注意:長時間測試不對,可以重寫代碼。
? ? ? ? ?? PS:n,m不可混,要時刻看題。
?
轉載于:https://www.cnblogs.com/xzs123456/p/10476173.html
總結
以上是生活随笔為你收集整理的【CH4302】Interval GCD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: day5学python 基础+装饰器内
- 下一篇: fifo算法_缓存算法FIFO、LFU、