簡直有毒,出題人還一本正經的說:「我覺得沒有去年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(內網) 考場想到了正解,然後被卡快取記憶體,gg 乙個顯然的轉化就是設e ie i ei 表示朋友選擇第i ii個串的時候的期望操作次數。則答案就是所有e ie i ei 的平均值。首先考慮乙個o n l2l o nl2 l o nl2l 的暴力,對於每個串,列舉所有其他串看有多少個位置相同,則我們能夠知道... 簡要題意 統計有多少個不同的 n nn 排列滿足 pi i k p i i leq k pi i k k 4 k leq 4 k 4 容易發現當前位置選擇哪乙個只會影響到後面 k kk 個位置。k kk 本身非常小,狀壓即可。容易發現轉移和當前是第幾位無關,只和狀態有關,而且是線性,寫成矩陣然後快速... t1 階乘 fact.cpp 問題描述 有 n個正整數 a i 設它們乘積為 p,你可以給 p乘上乙個正整數 q,使 p q剛好為正 整數m的階乘,求m的最小值。輸入 共兩行。第一行乙個正整數n。第二行n個正整數a i 輸出 共一行乙個正整數m。輸入樣例 16 輸出樣例 3樣例解釋 當p 6,q 1...校內模擬 記憶(狀壓DP)
校內模擬 排列(狀壓DP)(矩陣快速冪)
2018 10 05 校內模擬 二分 狀壓 樹剖