1. 程式人生 > >Noip 模擬 14 2018/11/1

Noip 模擬 14 2018/11/1

T1:白玉樓前(youmu)
妖夢現在要玩幽幽子的遊戲,她才能拿回自己的半靈。
遊戲規則是這樣的:
幽幽子有 n 個點,現在她讓妖夢對每個點隨機一條出邊 (隨機到每個點的概率都相等),然後得到一張圖。(注意:可以自環)
如果這張圖任意一個點沿著邊走兩步(顯然這樣的走法唯一)都能到達自身,則幽幽子可以通關。
現在幽幽子想問妖夢,她通關的概率是多少?
兩個圖不同,當且僅當存在一條邊出現在圖 A 中且不出現在圖 B 中。圖中的點有編號,邊無編號。
答案 mod 998244353。
提示:答案必定可以表示成qp \frac{q}{p}
的形式,在模意義下, qp=p×q1\frac{q}{p}=p\times q^{-1}

,其中q1q^{-1}qq 的逆元。*
測試的時候,想到列舉二點環數,即可得到ans=i=1nCn2×i×j=1n2(2j1) ans=\sum_{i=1}^{n}C_{n}^{2\times i}\times\prod_{j=1}^{\frac{n}{2}}(2j-1)
時間效率O(Tn) O(Tn),T 到飛起
考慮新加入一個點時,要麼自環,要麼和其他點成環
即可得到 dp 式f[i]=f[i1]+f[i2](i1) f[i]=f[i-1]+f[i-2]*(i-1),預處理即可

T2:式神守護(yukari)
紫媽有 n 個隙間排成一列,每個隙間都有一個權值 i val 。
她可以選出某些隙間來召喚式神:一組隙間能成功召喚式神當且僅當他們的權值和為 m 的倍數。(可以是 0 倍)
現在紫媽試圖召喚 Q 次式神,每次給出一個 i i l 和 r , 她試圖在第 i i l 到 r 個隙間中召喚式神,
她會選擇其中一些隙間(不一定需要連續的一些)召喚式神。她想知道,有多少種方案可以成功召喚式神。

會對答案造成貢獻的,只有 %mm0 0 的情況,很容易想到用線段樹處理出0m1 0—(m-1)的情況,然後m

2 m^2 合併,查詢的時候帶著邊查邊合併就好了,但是時間過不去
考慮分治
對於r<mid r<mid 或者l>mid l>mid 交給下一層去做
對於l<=midr>=mid l<=mid r>=mid 的情況,記f[i][j] f[i][j] 表示從mid mid 向左到i i 這個位置模數為j j 的方案數,g[i][j]g[i][j] 表示從mid mid 向右到i i 這個位置模數為j j 的方案數,ans=i=0m1f[l][i]g[r][mi]ans=\sum_{i=0}^{m-1}f[l][i]*g[r][m-i],即類似於整體二分

T3:西行妖下(yuyuko)
幽幽子站在西行妖下,她需要解封西行妖最後的力量。
西行妖可以當作一個有n n 個點的樹,每個點都有一些符文,初始每個點符文個數為1 1
幽幽子可以施展魔法,將符文隨機移動,來解封封印。
每個點上的符文可以看作是一個1m 1~m 的排列,原本的狀態為1,2,3,4,,m 1,2,3,4,……,m 按順序排列 (mm 為符文的個數)。想要解封一個點上的封印,要求排列中對於任意的i ipi!=ip_i!=i 。幽幽子每次的魔法效果是隨機形成一個排列,嘗試能否解除封印。
幽幽子每次會走過一條路徑,從s st t,對每個點施展一次魔法,並詢問能解封的點的期望個數。
現在有Q Q 次操作:
Add s t x 在s st t 的路徑上每個點加x x 個新的符文。
Multi s t x 在s st t 的路徑上,每個點符文個數×x \times x
Query s t 求從s st t 解封點的期望個數是多少。
(注意:每次 Query 操作是獨立的,即前一次 Query 中施展的魔法在 Query 結束時被立即撤銷,所有走過的路徑上點的符文排列變為pi=i p_i=i,對後續操作不產生影響)

錯排的方案數為f[i]=(f[i1]+f[i2])(i1) f[i]=(f[i-1]+f[i-2])*(i-1),概率即為f[i]i! \frac{f[i]}{i!}
通過列舉可以發現,概率具有收斂性,值在i>20 i>20 後穩定在0.367879 0.367879 左右(不會證明
那麼每個點被修改的次數不會超過 20
線上段樹上大力修改單點修改每個點的值即可,套個樹剖