连续段问题小结
一個(gè)好用的工具——析合樹
oi-wiki
例題
CF526F
題意:
給出一個(gè)1~nnn的排列,問(wèn)有多少個(gè)區(qū)間的值域是連續(xù)的。
題解:
線段樹+單調(diào)棧做法
分治做法
析合樹做法
圖論做法
CF997E
題意:
給出一個(gè)1~nnn的排列,有qqq次詢問(wèn),每次問(wèn)[l,r][l,r][l,r]內(nèi),有多少個(gè)區(qū)間的值域是連續(xù)的?
題解:
單調(diào)棧+線段樹的掃描線做法
析合樹離線做法
析合樹在線做法
LuoguP4747
題意:
給出一個(gè)1~nnn的排列,有qqq次詢問(wèn),每次問(wèn)包含位置區(qū)間[l,r][l,r][l,r]的連續(xù)段的最短長(zhǎng)度是多少,連續(xù)段的定義為排序后值域連續(xù),可以證明解存在且唯一。
題解:
掃描線做法
析合樹做法
圖論做法:題解1 題解2
XSY3344
emm,這題原題好像是2018EC Final B.Mysterious … Host
這里有簡(jiǎn)要題解
題意:
題解:
所有nnn階排列形成的等價(jià)類個(gè)數(shù) 等于 有nnn個(gè)葉子的不同形態(tài)的析合樹棵樹。
析合樹有以下性質(zhì):
- 合點(diǎn)的兒子個(gè)數(shù)≥2\geq2≥2(葉子節(jié)點(diǎn)除外)
- 析點(diǎn)的兒子個(gè)數(shù)≥4\geq4≥4
設(shè)fif_ifi?為所有iii階排列形成的等價(jià)類個(gè)數(shù)(即有iii個(gè)葉子的不同形態(tài)的析合樹棵樹)。
顯然可以O(n2)O(n^2)O(n2)DP得到fnf_nfn?。
多項(xiàng)式優(yōu)化:
記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
參考——兩個(gè)學(xué)長(zhǎng)的BlogBlogBlog:
https://www.cnblogs.com/ywwyww/p/10193748.html
https://blog.csdn.net/Mys_C_K/article/details/85385019
附:析合樹形態(tài)計(jì)數(shù) dp
LuoguP6795
總結(jié)
- 上一篇: 因释其耒而守株是什么意思 因释其耒而守株
- 下一篇: [XSY3343] 程序锁(DP)