7.16 T1の贈り物

効果の件名:nは2件の記事、毎回購入するパイの可能性がある、あなたが買う繰り返すことができ、あなたは何を購入することはできませんが、購入を検討し、すべてを購入することが予想番号をお願いします。10%のためのデータ、N = 1;データの30%を、N≤5は、データの100%、N≤20、0 <のWi≤10 ^ 9、0 <Piの≤1とΣPi≤1〜

ちょうど私が、確率と期待を行ってきました(あまりにも料理が...)の半分を沈め、この質問を見て、それを行うには、最後に置きます。

nが小さいので、[i]はn iは購入を期待通りに商品の種類の現在の状態を表し、0購入するF、圧力のように検討し、1は、過去の期待のタイトルに基づいて、(私は他の人とQAQのちょうど反対だ)買いませんでした[i]は状態iはFので、実際には、完全な期待の購入を購入するために、逆方向に転送することを検討してください。F [0]、F、完全な期待が0で購入、全体購入を示す[)1 << N + 1 -1]、すなわち、最終的な答えを購入しない示します。

転写式([I] +1 F)j個のI比は、複数の購入0以上である[I] =Σ* P [K] +(1-ΣP[K])([J] +1 F)* Fで一種、kはアイテムの一種であります

意味をf [j]は期待から転送され、購入したり、重い期待を買わなかったこの購入は、ΣP[k]は何を表すか確率は新しいアイテムを購入し、1-ΣP[k]が古い購入することですかこれが変化しない状態で、購入していない、[i]はFから転送します。

[i]は、ガウスの消去F両側には?falseの場合、アイテムは[i]は=のΣf[J] * P [K] /ΣP[k]はF何シフトされます。

テストと同じ式を押したときには、[1]シェーンを知りたい方、ものを購入することを検討し、質問は本当に弱いバーストを期待し、そしてnはまた、1 / Pをエクスポートするために期待していなかった== 1ポイントないし、話題やアイデア試験サンプルは非常に明確ではありませんし、障害を見つけようと、一時間以上の操作を行い、その後、それは最高のスコアを取得しようと、先送り入れてきました。

書式#include <iostreamの> 
の#include <cstdioを>
 に#define LL長い長い
 使って 名前空間はstdを、
int型のn、bは[(1 << 21)+ 15 ]。
LL W [ 25 ]、ANS。
ダブル P [ 25 ]、PP、PI、Fの[(1 << 21)+ 15 ]。
INT lowbit(INT X)
{ 
    戻り X&( - X)。
} 
int型のmain()
{ 
    scanf関数(" %のD "、&N)
    以下のためのint型 i = 1 ; iが<= N; iが++ ){ 
        scanf関数(" %のLFの%のLLDを"、&​​P [i]は、&W [I])。
        もし(P [i]が> 0)ANS + = [I] W。
    } 
    のprintf(" %LLDする\ n " 、ANS)。
    以下のためにint型 i = 0 ; iが<= N; iは++ ){ 
        Bの[ 1 << I] = I。
    } 
    のためにint型 i = 0 ; iが=(< 1 << N + 1) - 1 ; iは++ ){
         ダブル H =0 ;
        int型 J = I、J、J- = lowbit(J)){
             int型 TMP = lowbit(J)。
            F [I] + = F [I-TMP] * P [TMP] B]。
            H + = P [TMP] B]。
        } 
        であれば、[I] =(F [I] + F(H)1)/ H。
    } 
    のprintf(" %.3lfする\ n "で、f [(1 << N + 1) - 1 ])。
    リターン 0 ; 
}
退廃的ではないですか

 

おすすめ

転載: www.cnblogs.com/jrf123/p/11198805.html