HDU 4870評価

質問の意味:アカウントのためにあなたに0の2つの初期スコアを与えるあなたがゲームをプレイすることができ、ためにすべてのゲームを勝利の確率p型は、50ポイントを獲得した、-100ポイントを失った、もちろん、あなたが負のポイントではないでしょう、毎回あなたは我々は低分のアカウントでゲームをプレイし、1000ポイントをヒットするかを尋ねるアカウントが一致の数の期待値に参加する必要があります。

 

アイデア:インターネットは当然のことであると言う、とにかく、これは私の第二の経路確率DPは、私が思うに、人々はそれを明確にしなかったので、このブログを書くことができなかったですが、私は単純化は、後に徹底的に私を理解して方法がわかりません詳細を記述します。

1分勝利プラス1 -2のスコアとして50分。DP [i]はiはゲームポイントの期待数に参加する必要があるI-1部分から上昇して維持されます。あなたが勝った場合、その後、それは、失う意志を戦うことです、その後、スコアはI-3になった、私たちは1 + DP [I-2]が必要になります + DP [I-1] + DP [i]は私のポイントを順番に回失われた場合でもので、だけでなく、数に参加したので、この1つはそこにあります。(1-P)* DP [I] = P * 1 +与える(1 + DP [I-2] + DP [I-1] + DP [I]); DP [i]を右転置簡略化に:DP [I] = 1 / Pの+(1-P)/ P×(DP [I-2] + DP [I-1]); のみ計算DP [1] DP [2]行に、DP [1]それは明らかである1 / P、DP [2]、DP [i]がほとんどではなく、ダウン負のポイントにのみゼロまで。DP [2] P * = 1 +(1-P)*(1 + DP [1] + DP [2])、 DP [2] = 1 / P単純化することである / Pと、

結果は確かに1000ポイントであるように、それぞれが、最初の番号を獲得するので、950点は、950割り当てられた1000点、1000点のスクリーニングに参加する必要性の両方を計算マイナスフィールドの数がオンラインに参加する必要があり、それは必要な1から950スクリーニングに1000の割合です。

#include <ビット/ STDC H ++>
 使用して 名前空間STD; 

ダブル DP [ 25 ]; // DP [i]はiは、ゲームの所望の数取る必要性からI-1に割り当てられて格納されている
INT )主に(
{ 
    ダブルP 、TOT;
     一方(CIN >> P){ 
        DP [ 1。 =] 1。 / P; 
        DP [ 2 ] = 1 / Pの+(1 / P * DP -p)[ 1 ]; 
        TOT = DP [ 1 ] + DP [ 2 ];
         のためには、INT I = 3 ;私は= < 20であります; 私は++ ){ 
            DP [i]は = 1 / Pの+(1 -p)/ P×(DP [I- 2 ] + DP [I- 1 ])。
            TOT + = DP [I]。
        } 
        のprintf(" %の.6lfする\ n "、TOT * 2 - DP [ 20 ])。
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/philo-zhou/p/11330699.html