用多項式的逆優化dp總結
用多項式的逆優化dp總結
考慮一個經典的模型:
d p i = ∑ j = 1 i d p i − j × f j dp_i=\sum_{j=1}^i dp_{i-j}\times f_j dpi=∑j=1idpi−j×fj
求 d p n dp_n dpn 這種問題表面看上去需要 n 2 n^2 n2,但是事實上可以更優。
我們建立一個長度無窮大的多項式: F ( x ) = ∑ i = 0 ∞ f i × x i F(x)=\sum _{i=0}^\infty f_{i}\times x^i F(x)=∑i=0∞fi×xi,特殊的: f 0 = f k + n = 0 , k ∈ N ∗ f_{0}=f_{k+n}=0,k\in \mathbb{N}^* f0=fk+n=0,k∈N∗
然後可以發現 d p n = ∑ i = 0 ∞ [ x n ] ( F i ( x ) ) dp_n=\sum _{i=0}^{\infty}[x^n](F^i(x)) dpn=∑i=0∞[xn](Fi(x))
由於 ∑ i = 0 ∞ x i = 1 1 − x \sum _{i=0}^{\infty} x^i=\frac{1}{1-x} ∑i=0∞xi=1−x1
所以: d p n = [ x n ] 1 1 − F ( x ) dp_{n}=[x^n]\frac{1}{1-F(x)} dpn=[xn]1−F(x)1
然後 d p n dp_n dpn就是多項式 G ( x ) = 1 − F ( x ) G(x)=1-F(x) G(x)=1−F(x)的逆的第n項係數。時間複雜度為 O ( n log n ) O(n\log n) O(nlogn)
如何求多項式的逆元?
題解 P4238 【模板】多項式求逆- Great_Influence 的部落格 - 洛谷部落格 (luogu.com.cn)
相關文章
- 斜率優化DP總結優化
- 正規表示式的多種實用總結
- 題解 P5809【【模板】多項式複合逆】
- webpack優化總結Web優化
- APP優化總結APP優化
- 效能優化總結優化
- 總結MYSQL的優化薦MySql優化
- 【DP】斜率優化初步優化
- 總結前端效能優化的方法前端優化
- MySQL的SQL效能優化總結MySql優化
- PHP的效能優化方法總結PHP優化
- LAMP的思考:效能優化總結LAMP優化
- React 效能優化總結React優化
- SYBASE優化總結(zt)優化
- canvas效能優化總結Canvas優化
- React效能優化總結React優化
- 前端效能優化總結前端優化
- iOS 效能優化總結iOS優化
- JDBC優化策略總結JDBC優化
- Oracle SQL優化總結OracleSQL優化
- Oracle SQL優化 總結OracleSQL優化
- 概率DP總結 by kuangbin
- 一元多項式的應用
- Android效能優化——效能優化的難題總結Android優化
- 斜率優化(凸包優化)DP問題acm優化ACM
- nginx應用總結(2)--突破高併發的效能優化Nginx優化
- java多型-優化上個例項Java多型優化
- MySQL反連線的優化總結MySql優化
- 總結SQL語句中的優化提示SQL優化
- 小程式效能優化總結優化
- App瘦身、效能優化總結APP優化
- 優化演算法總結優化演算法
- 系統效能優化總結優化
- 前端效能優化常用總結前端優化
- web前端效能優化總結Web前端優化
- 前端優化實踐總結前端優化
- Android效能優化總結Android優化
- MySQL使用與優化總結MySql優化