hdu 5089 使做對k-1題最大概率的選題方案
給出N道難度遞增的題目,難度用可能做出的百分比表示,選出K道題目使得做出K-1道題目的概率最大。
選k題的情況下做出k-1的概率為所有(1-p)*p*p...的和,直接嘗試轉化這個式子的效果並不明顯。
換個思路,假設最優解已經包含了k-1個了,現在來選取最後一個。K-1個全部做出的概率是Pall(k−1),有一道為做出的概率是Pless(k−1),現在選取的是PCk,那麼做出K-1道的概率是
Pall(k−1)∗(1−P[PCk])+Pless(k−1)∗P[PCk]=
Pall(k−1)+P[PCk]∗(Pless(k−1)−Pall(k−1))
這是一個關於PCk的一次函數,如果Pless(k−1)−Pall(k−1)為正,選取最大的PCk,否則選取最小的。
那麼我們每次選取的時候一定是選擇剩下的最大或最小,那麼說明答案一定是選取兩邊的概率,枚舉比較一下就可以算出最大的概率了。
但是要求的是字典序最小的。左邊不用管,對於右邊,如果存在相同的value,應該選取index較小的。然後隨便搞下就ok了。
#include
#include
#include
#include
#include
#include
#include