用多項式的逆優化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總結優化
- 【模板】多項式乘法逆
- [DP] DP最佳化總結
- 題解 P5809【【模板】多項式複合逆】
- APP優化總結APP優化
- webpack優化總結Web優化
- 一元多項式的應用
- Android效能優化——效能優化的難題總結Android優化
- 【DP】斜率優化初步優化
- PHP的效能優化方法總結PHP優化
- 總結前端效能優化的方法前端優化
- MySQL的SQL效能優化總結MySql優化
- 前端效能優化總結前端優化
- SYBASE優化總結(zt)優化
- React 效能優化總結React優化
- iOS 效能優化總結iOS優化
- React效能優化總結React優化
- canvas效能優化總結Canvas優化
- 1455G Forbidden Value(資料結構優化dp+啟發式合併)ORB資料結構優化
- 2024.10.2 總結(集訓;DP)
- 多項式
- App瘦身、效能優化總結APP優化
- 小程式效能優化總結優化
- 優化演算法總結優化演算法
- 系統效能優化總結優化
- python多執行緒的優缺點總結Python執行緒
- 斜率優化(凸包優化)DP問題acm優化ACM
- Solon 1.5.16 釋出,多項細節優化優化
- 2024.8.31 總結(集訓 考 DP)
- 2024.8.30 總結(集訓 考 DP)
- 正交多項式介紹及應用
- 總結幾個webpack打包優化的方法Web優化
- 用單連結串列實現多項式加,減,乘,簡單微分
- UI技術總結--效能優化UI優化
- 打個總結:Web效能優化Web優化
- ⚠️Flutter 效能優化實踐 總結⚠️Flutter優化
- vuejs專案效能優化總結VueJS優化
- PHP 程式碼優化技巧總結PHP優化