bzoj4735 你的生命已如風中殘燭

2021-08-20 07:08:29 字數 1072 閱讀 4633

description

眾所周知,萌萌噠六花不擅長數學,所以勇太給了她一些數學問題做練習。但是今天六花醬不想做數學題,於是他

們開始打牌。現在他們手上有m張不同的牌,牌有兩種:普通牌和功能牌。功能牌一共有n張,每張功能牌都有乙個

屬性值wi,保證sigma(wi)=m,1<=i<=n現在勇太將這m張牌隨機打亂(一共有m!種不同的順序)。一開始,六花先從

牌堆頂端取一張牌。接著每回合六花可以選擇手中的一張牌打出,如果這張牌是普通牌,那麼什麼都不會發生;如

果這種牌是功能牌,那麼六花需要從牌堆頂端再取wi張牌。重複這個過程直到六花手中沒有手牌或六花要摸牌的時

候牌堆已經空了,如果是前者,則勇太勝利,否則六花勝利。舉例來說,如果牌堆是。

2)打出,再取三張牌,手中的牌為。

3)打出這三張牌,還需要再取兩張,取到第二張的時候牌堆中已沒有牌,六花勝利。

而如果牌堆是,不難發現是勇太大勝利。現在,六花想要知道,這m!種順序中,有多少種是能讓自

己取得勝利的呢。當然這個問題對萌萌噠六花來說實在是太雉了,所以她來向你尋求幫助,你能幫幫她嗎。

input

第一行乙個整數n。

第二行他個空格隔開的正整數wi。

通過輸入你可以自己算出來m=sigma(wi),1<=i<=n

n≤40,1< wi≤10^5

output

輸出乙個整數表示答案,答案可能很大,你只需要輸出對998244353取模後的結果。

sample input

1 3

sample output

2 樣例解釋一

m!種牌堆中,

return *s++;

}inline

int read()

while(isdigit(ch)) x=x*10+ch-'0',ch=gc();

return x*f;

}const

int mod=998244353;

int n,m,ans;

int main()printf("%d\n",ans);

return

0;}

bzoj4735 數論 你的生命已如風中殘燭

description 眾所周知,萌萌噠六花不擅長數學,所以勇太給了她一些數學問題做練習。但是今天六花醬不想做數學題,於是他 們開始打牌。現在他們手上有m張不同的牌,牌有兩種 普通牌和功能牌。功能牌一共有n張,每張功能牌都有乙個 屬性值wi,保證sigma wi m,1 i n現在勇太將這m張牌隨機...

清華集訓2016 你的生命已如風中殘燭

將 w i 全部減 1 則問題變成乙個序列,其中給定有 n 個正數 w i 其餘都是 1 和是 0 字首和均非負,求排列方案數。如果和是 1 且要求字首和全為正數,有結論 每個排列的所有迴圈移位只有 1 種合法,所以計數圓排列數即可,具體數學 7.5 章有詳細證明,其實就是每次必須要取最後乙個最小值...

測試你生命的顏色

生命顏色是法國著名心理及靈術家ganaesia所研究出來的.只要把出生年月日相加,便可找出自己的生命顏色,從而窺探內心深處真正的自己,至於是不是真的有這麼神準,拿起筆來,自己算 生命顏色的計算方法 把你的西元出生年月日用的數字寫出來,然後將數字乙個乙個相加,直到結果變成單一數字為止,這個數字就是你的...