SRM642 Div1 Easy WaitingForBus

TopCoder Statistics - Problem Statement

[問題]

バス発着所にN台のバスがある。それぞれのバスは出発するとtime[i]後にバス発着所に帰ってくる。時刻0にいずれかのバスが確率prob[i]で出発し、戻ってくるといずれかの次のバスが同じく確率prob[i]で出発し、、、を繰り返す。

時刻sにバス発着所に着いた時、待ち時間の期待値はどれぐらいか?

1≤N≤100

1≤time[i]≤10^5

1≤prob[i]≤100

0≤s≤10^5

 

[解答]

dp[時刻]である時点でバスの出発時刻である確率を保持して時刻s以上の最初の時点(最大s+10^5)までDPで更新していく。sからs+10^5の間の Σ DP[i]x(i-s) で期待値を求める。計算量はO(s * N)

[コード](C++)