AcWing 246. 區間最大公約數
-
題意簡述:區間加,區間 gcd.
-
解:
根據更相減損術,有 \(\gcd(x,y)=\gcd(x,y-x)\).
一般地,有 \(\mathbf{\gcd(a_1,a_2,\cdots,a_n)=\gcd(a_1,a_2-a_1,\cdots,a_n-a_{n-1})}\).
這個結論是關於 gcd 的一個重要結論(另一個重要結論是 \(\gcd(f_n,f_m)=f_{\gcd(n,m)}\),其中 \(f\) 爲斐波那契數列)。
有了這個結論,我們就可以使用線段樹維護關於 \(a\) 數組的差分數組 \(b_i=a_i-a_{i-1}(a_0=0)\) 的和與 gcd.
單點修改,區間查詢。時間複雜度 \(O(m\log n)\).