題意
張士超是你在上海音樂學院的基友,關係非常好。你們在五角場附件合租了一間屋子。由於你那麼有錢,一下買了 n 把相同的鎖,並一下配了 N 把相同的鑰匙。你用這些鎖並聯鎖住你家的大門,需要同時插入 n 把鑰匙才能打開。
一天晚上,張士超帶着華師大的姑娘去了閔行。而且還把你們的 N 把鑰匙全部藏在了一些奇怪的地方。
張士超有 M 個可能的地方來藏鑰匙,比如地毯,花園,或門口大爺。每處藏匿位置至多可容納 ai 把鑰匙,並且有 pi 的獨立概率被你找到。當然如果一個位置被你找到了,你就會拿到這裏的所有鑰匙。你必須至少拿到其中 n 把鑰匙才能回家。
假設張士超按所有合法方案中的任何一種方案放鑰匙的概率相同。現在你希望算出你可以找到鑰匙順利回家的概率,如果這個概率太小,就乾脆打車跑到閔行去把張士超痛扁一頓。
張士超在閔行樂不思蜀,你卻在五角場無家可歸。你必須在2s內算出答案,否則就會在寒風凜冽的國定路被凍死。
對 998244353 取模。爲避免除法可能出現的問題,請輸出答案乘上合法方案總數的積,即放鑰匙的所有方案中能回家的概率之和。合法方案即一個數組 0≤bi≤ai 滿足 0≤bi≤ai,∑ibi=N
所有測試數據滿足 1≤M≤100,1≤n≤N≤∑ai,1≤N,ai≤109,1≤d≤107,0≤pi<998244353,N≤100d,d∣(ai+1),但並不保證 d∣N 或 d∣n
Other Constraints |
M,N |
Points |
ai≤10 |
M≤6 |
10 |
n=1 或 n=N |
N≤100 |
5 |
n=1 或 n=N |
|
15 |
pi∈{0,1} |
N≤100 |
5 |
pi∈{0,1} |
|
15 |
No More Constraints |
N≤100 |
30 |
No More Constraints |
|
20 |
題解
注意到N≤100d,考慮每個位置先選若干個d,最後把剩下的分給每個位置,要求每個位置少於d。考慮n的限制,如果概率都是0或1,即在p=1位置要放的數總和不少於n;考慮把每一種可能性以概率的積的形式記在DP中,先DP出總共放了i個d,在選的位置放了j個d,選了k個位置的概率總和。
剩下的問題在於把x個數放到M個位置,每個位置小於d,前k個位置放不少於y個。考慮後者,由於M較小,考慮枚舉第y個數在哪個位置,再乘上組合數即可。對於前者,在DP的時候直接容斥,即當前的位置若選了不少於d個就∗−1。這樣就做完了,效率爲O(n4)。