2010-02-18から1日間の記事一覧

SRM462 Div2 Easy(250) Archery

Archery #include <vector> using namespace std; class Archery { public: double expectedPoints( int N, vector <int> ringPoints ); }; double Archery::expectedPoints( int N, vector <int> ringPoints ) { double p = 0; for ( int i=0; i<=N; i++ ) p += (double)ringP</int></int></vector>…

SRM462 Div1 Medium(450) CandyBox

CandyBox箱の個数をnとすると、i回目の交換で箱jと箱kの飴が選ばれる確率はx=2(C/nC)(C/(nC-1))。交換前のそれぞれの箱の期待値をp, qとすると、箱jの期待値は(p-q)x/C増える。jもkも同じ箱が選ばれる確率はxではないけど交換に意味は無いので、まあいいか。…

SRM462 Div1 Easy(250), Div2 Medium(500) AgeEncoding

AgeEncoding基数が大きくなるほど表す年齢も大きくなるので、二分探索。例外処理が面倒。蝋燭が0000ならば、-1。蝋燭が0001のとき年齢が1ならば-2、年齢が1以上ならば-1。蝋燭が0101のように最後の1本と他に1本以上立っていて、年齢が1ならば-1。 #include <string></string>…

SRM462

Easy (250) 0 (Challenge Succeeded)age=1, candle="11"の場合だろうか。-1を返さなければならない。0でいいんじゃないかと思ったけど、0と答えの-1の誤差は1>=1e-9。age=1, candle="000000"の場合に気付いて勝ったと思っていたけど、同室だったid:wata_orz…

SRM462 Div2 Hard(1000) SteeplechaseTrack

SteeplechaseTrack動的計画法。i個目のフェンスとしてフェンスjを跳んだ後の複雑さの最大値をci,jとする。ci,j = max{ ci-1,k | ci-1,kが有効で、k→jに道がある }である。全ての有効なci,jに終点までの複雑さを足したものの最大値を求める。 #include <string> #incl</string>…