題意
勇士一開始戰鬥力是 0。面對著 n 個怪,每個怪亦有自己的戰鬥力。勇士戰鬥力不低於怪戰鬥力的時候,勇士勝,怪死亡,勇士戰鬥力加一;否則勇士死,戰鬥結束。
目前不清楚怪的出現順序,問對於所有怪的出場順序,勇士戰鬥結束的時候戰鬥力的數學期望是多少?
由於這個數字是小數,精度難以保證。請將這個期望乘以 n! ,之後再取模 109+7 輸出。
鏈接:http://www.51nod.com/onlineJudge/questionCode.html#problemId=1670¬iceId=35437
思路
所謂結束意味著敗于前面 n 個怪的某一個,或者是戰勝所有的怪。這些情況下的戰鬥力是已知的,所以我們的任務是求出每種結局的概率。
如果直接求方案數難以下手。但是我們發現如果知道打贏第
我們發現,打贏第
i
只怪之後,再在沒打死的怪中選一隻可以打死的怪就意味著打死了第
至於 x 的求法,只要看小於等於某個戰鬥力的怪有多少就可以了,利用前綴和就不難解決。
最後要求乘以
結果就是 ∑i=1n(fi−1−fi)(i−1)+nfn 。
代碼:https://code.csdn.net/snippets/1585064/master/51nod1670.cpp/raw