2018 10 17 校內模擬 管道(狀壓DP)

2021-08-29 05:31:52 字數 965 閱讀 1088

簡直有毒,出題人還一本正經的說:「我覺得沒有去年noi

pd2t

2noipd2t2

noipd2

t2難啊」

我只想說,去年d2t

2d2t2

d2t2

的轉移方程那裡有這麼鬼畜。。。

首先利用兩個陣列f,d

pf\textdp

f,dp

來進行狀態轉移。

定義如下fi,

staf_

fi,sta

​表示不向點i

ii之前的點(即sta

stast

a中的點)回溯,當前點在i

ii,能夠向後dfs

dfsdf

s補全的集合,這個顯然存在遞推關係,可以dfs

dfsdf

s解決。

然後就直接隨便寫了乙個記搜。。。

d pi

,sta

dp_dp

i,st

a​表示當前在點i

ii,已經通過的點的集合為sta

stast

a,繼續dfs

dfsdf

s的方案數。

然後直接上狀態轉移方程:dpi

,sta

=∑jd

pj,s

ta∣(

1<

×dpi

,sta

∣fj,

st

adp_=\sum_jdp_{j,sta|(1i,st

a​=j

∑​dp

j,st

a∣(1

<

​×dp

i,st

a∣fj

,sta

​​粗略解釋一下就是,先遍歷j

jj和回溯後遍歷i

ii的其他子樹,根據乘法原理,這種方法的貢獻就是兩者的乘積。

code(內網)

校內模擬 記憶(狀壓DP)

考場想到了正解,然後被卡快取記憶體,gg 乙個顯然的轉化就是設e ie i ei 表示朋友選擇第i ii個串的時候的期望操作次數。則答案就是所有e ie i ei 的平均值。首先考慮乙個o n l2l o nl2 l o nl2l 的暴力,對於每個串,列舉所有其他串看有多少個位置相同,則我們能夠知道...

校內模擬 排列(狀壓DP)(矩陣快速冪)

簡要題意 統計有多少個不同的 n nn 排列滿足 pi i k p i i leq k pi i k k 4 k leq 4 k 4 容易發現當前位置選擇哪乙個只會影響到後面 k kk 個位置。k kk 本身非常小,狀壓即可。容易發現轉移和當前是第幾位無關,只和狀態有關,而且是線性,寫成矩陣然後快速...

2018 10 05 校內模擬 二分 狀壓 樹剖

t1 階乘 fact.cpp 問題描述 有 n個正整數 a i 設它們乘積為 p,你可以給 p乘上乙個正整數 q,使 p q剛好為正 整數m的階乘,求m的最小值。輸入 共兩行。第一行乙個正整數n。第二行n個正整數a i 輸出 共一行乙個正整數m。輸入樣例 16 輸出樣例 3樣例解釋 當p 6,q 1...