Sat
LGR-176(Div.2)
A. 區間和問題,一眼盯真:字首和。
B. bfs,順便記一下轉移方向。
C. 最小化最大值,二分答案,用點 DS 實時維護逆序對即可,筆者用了線段樹。
D. 區間DP,預處理一下 \(a_i^{a_j}\) 的值,然後記 \(f_{l,r,0/1}\) 表示到達了 \([l,r]\) 區間,並且最後一步是取了頭部/尾部到達該狀態,從 \(f_{1,n-1,1}\) 與 \(f_{2,n,0}\) 開始即可。
E. 先離散化,然後二分,雙 \(\log\) 搞定(雖然正解單 \(\log\))。
F. 首先改刪邊為加邊,使用 \(\mathcal{O}(1)\) 求 LCA,並且用並查集合並,實時維護每個連通塊當時的直徑長度(multiset
等),兩個端點,運用結論:合併兩棵樹的直徑的端點一定是原兩棵樹的兩條直徑的四個端點中的兩個。
G. 可以列舉(有點事沒寫,雖然也不太會)(為什麼列舉複雜度對了啊?!)
Sun
作業題
【省選聯考 2020 A 卷】
給定圖 \(G\),記 \(T\) 是 \(G\) 的一棵生成樹,\(e\) 是 \(G\) 中的一條邊,\(w(e)\) 表示 \(e\) 的邊權,求:
其中 \(|V|\leq 30, w(e)\leq 1.6\times 10^5\)。
尤拉反演,得到:
然後拉出權值是 \(d\) 的倍數的邊,求所有生成樹的邊權和,這並不好處理,但是考慮多項式 \((w(e)x+1)\),這可以使得乘法轉加法,在 \(\pmod {x^2}\) 意義下進行多項式加減乘法和多項式求逆。
當然,考慮對於常數項為 \(0\) 的多項式,此時沒有逆,直接用一次項進行消元。
附:多項式求逆(牛頓迭代式):設已知 \(F\) 是 \(A\) 在 \(\pmod {x^{\lceil{\frac{n}{2}}\rceil}}\) 意義下的逆,要求 \(G\) 是 \(A\) 在 \(\pmod {x^n}\) 意義下的逆,有:\(G(x)=2F(x)-F^2(x)A(x)\),在本題中次數較低,可以直接一次迭代搞定。