SRM518 Div2 Hard(1000) CoinReversing
コインが表でも裏でも裏返る確率はa[i]/N。現在の表の枚数の期待値に、裏のコインが表になる期待値を足し、表のコインが裏になる期待値を引けば、次の表のコインの枚数の期待値が求まる。
#include <vector> using namespace std; class CoinReversing{public: double expectedHeads( int N, vector <int> a ) { double ans = N; for ( int i=0; i<(int)a.size(); i++ ) ans += (N-ans)*a[i]/N-ans*a[i]/N; return ans; }};