连续段问题小结
一個好用的工具——析合樹
oi-wiki
例題
CF526F
題意:
 給出一個1~nnn的排列,問有多少個區間的值域是連續的。
題解:
 線段樹+單調棧做法
 分治做法
 析合樹做法
 圖論做法
CF997E
題意:
 給出一個1~nnn的排列,有qqq次詢問,每次問[l,r][l,r][l,r]內,有多少個區間的值域是連續的?
題解:
 單調棧+線段樹的掃描線做法
 析合樹離線做法
 析合樹在線做法
LuoguP4747
題意:
 給出一個1~nnn的排列,有qqq次詢問,每次問包含位置區間[l,r][l,r][l,r]的連續段的最短長度是多少,連續段的定義為排序后值域連續,可以證明解存在且唯一。
題解:
 掃描線做法
 析合樹做法
 圖論做法:題解1 題解2
XSY3344
emm,這題原題好像是2018EC Final B.Mysterious … Host
 這里有簡要題解
題意:
 
 題解:
 所有nnn階排列形成的等價類個數 等于 有nnn個葉子的不同形態的析合樹棵樹。
析合樹有以下性質:
- 合點的兒子個數≥2\geq2≥2(葉子節點除外)
 - 析點的兒子個數≥4\geq4≥4
 
設fif_ifi?為所有iii階排列形成的等價類個數(即有iii個葉子的不同形態的析合樹棵樹)。
 顯然可以O(n2)O(n^2)O(n2)DP得到fnf_nfn?。
多項式優化:
 記F(x)=∑i≥0fixiF(x)=\sum_{i\geq0}f_ix^iF(x)=∑i≥0?fi?xi,那么有
 F(x)=(F2(x)+F3(X)+F4(x)+...)+(F4(x)+F5(X)+F6(x)+...)+xF(x)=(F^2(x)+F^3(X)+F^4(x)+...)+(F^4(x)+F^5(X)+F^6(x)+...)+xF(x)=(F2(x)+F3(X)+F4(x)+...)+(F4(x)+F5(X)+F6(x)+...)+x
 F(x)=(F2(x)+F4(x))(1+F(x)+F2(X)+F3(x)+...)+xF(x)=(F^2(x)+F^4(x))(1+F(x)+F^2(X)+F^3(x)+...)+xF(x)=(F2(x)+F4(x))(1+F(x)+F2(X)+F3(x)+...)+x
 F(x)=F2(x)+F4(x)1?F(x)+xF(x)=\frac{F^2(x)+F^4(x)}{1-F(x)}+xF(x)=1?F(x)F2(x)+F4(x)?+x
 
 參考——兩個學長的BlogBlogBlog:
 https://www.cnblogs.com/ywwyww/p/10193748.html
 https://blog.csdn.net/Mys_C_K/article/details/85385019
附:析合樹形態計數 dp
LuoguP6795
總結
                            
                        - 上一篇: 因释其耒而守株是什么意思 因释其耒而守株
 - 下一篇: 丅恤如何穿搭