Hatena::Grouptopcoder

hotpepsiの練習帳

2016-01-07

SRM 656

02:07

https://competitiveprogramming.info/topcoder/srm/round/16416/div/1

Div1 Easy (250)

問題

  • N枚のパンケーキがある
  • それぞれの大きさは1からNで、それぞれのおいしさが与えられる
  • 1枚ずつランダムに選んで積んでいく
  • ただし、一つ前に積んだものより大きければ、それを積まないで終了
  • 詰まれたパンケーキのおいしさの合計の期待値を求める

方針

  • 座るだけ
  • (終了後)
  • こじはらさんのブログを参考に
  • 全体の並べ方はN!通り
  • 並べ替えの結果、i番目(0-index)のパンケーキがj番目(0-index)にあるとき、それがおいしさにカウントされる(終了していないとき)は、前半がカウント条件を満たしていたときで、その総数は、i番目より大きなg個(N-i-1個)のパンケーキからj個取った場合の数。g!÷((g-j)!×j!)通り。
  • 後半についてはカウント条件に関わらず全て数える(後半の並びかた関わらず、i番目のパンケーキのおいしさをカウントするかどうかだけ気にすればよい)
  • 後半のr個(N-j-1個)の並べ方はr!通り
  • すなわちi番目のパンケーキのおいしさの総和はg!÷((g-j)!×j!)×r!×おいしさ
  • 期待値は全体の並べ方はN!なので最後にそれで割る
  • https://github.com/firewood/topcoder/blob/master/srm_6xx/srm_656/RandomPancakeStack.cpp

結果

--- -1 -25pt 517th/531 rating 1543 -> 1384 (-159)

考察不足。


http://togetter.com/li/809565

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20160107

2016-01-05

TCO15 Algorithm Round 1A

02:05

https://competitiveprogramming.info/topcoder/srm/round/16432/div/1

Easy (250)

問題

  • 2つの数値について、10進数表記にしたとき共通する数字の数を類似性とする
  • L以上R以下の異なる2つの数の類似性の最大値を求める

方針

Medium (500)

問題

  • N個の場所とN個のトークンがある
  • それぞれの場所には矢印がついていて、いずれかの場所を指している
  • 初期配置として0個以上のトークンを異なる場所に置く
  • 各ターンでは、各場所のトークンを、矢印で指示された先に移動する
  • トークンが同じ場所に置かれるとゲームオーバー
  • ゲームオーバーにならないトークンの置き方の総数を求める

方針

  • 全てのトークンを置いてKターンシミュレーションしてみる
  • 場所が重なるものがあったら同じグループと見なす
  • 同じグループは、どれか一つだけ置くか、または、置かない
  • なので総数は(各グループの個数+1)の積
  • Kが大きいがmin(N,K)ターンで良い
  • Passed System Test
  • https://github.com/firewood/topcoder/blob/master/tco_2015/Autogame.cpp

結果

oo- +1

153.34 + 309.42 + 50 = 512.76pt 163rd/1195 rating 1459 -> 1543 (+84)

毎度TCOご祝儀。

参加者が少なくて1pt以上の人は全員通過。


http://togetter.com/li/807322

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20160105

2016-01-04

Google Code Jam Qualification Round 2015

01:42

https://code.google.com/codejam/contest/6224486/dashboard

A. Standing Ovation

問題

  • 友人のオペラの公演で観客全員をスタンディングオベーション状態にしたい
  • ある観客がSO状態となるためにはSO状態の観客がSi人以上必要である
  • 観客全員をSO状態にするためのサクラの人数を求める

方針

B. Infinite House of Pancakes

問題

  • D個の皿に何個かのパンケーキが配られる
  • 毎秒、全ての皿のパンケーキを1つずつ食べるか、または、どれかの皿のパンケーキをどこか(新しい空の皿でもよい)に移動できる
  • 全てのパンケーキを消費する最小秒数を求める

方針

C. Dijkstra

問題

  • i、j、kからなる基本文字列Lと、その繰り返し回数Xが与えられる
  • 隣接する2文字は置換ルールで1文字に短縮できる
  • 3文字の文字列ijkに短縮可能かどうか求める

方針

  • 数値に変換して先頭からシミュレーション
  • 先頭がiになるまで次の文字と短縮していく
  • 文字がjになるまで次の文字と短縮していく
  • 文字がkになるまで次の文字と短縮していく
  • 残りの文字が空か、すべて短縮したら1(同じ)になるかどうかを調べる
  • 同じ文字列を4回かけると1になるので、4の倍数分はカットする
  • https://github.com/firewood/topcoder/blob/master/gcj_2015/QR_C.py

結果

A、B、C-smallで49点。例年より通過枠が厳し目か。

Cで末端の処理をX % 16としていたが、これだと残りがちょうど16回の場合に誤判定するので、(X > 4のとき)4 + (X % 4)のようにしないといけなかった。


http://togetter.com/li/807476

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20160104

2016-01-03

SRM 655

| 17:18

https://competitiveprogramming.info/topcoder/srm/round/16415/div/1

https://competitiveprogramming.info/topcoder/srm/round/16415/div/2

Div1 Easy (250)

問題

  • Wで塗りつぶされた升目がある
  • K×Kの大きさ単位でBまたはWで塗りつぶす
  • 最終状態が与えられる
  • 初期状態から最終状態にできるかどうかを求める

方針

結果

--- 0pts 248th/564 rating 1504 -> 1459 (-45)

「どちらでもよい状態」を思いつけなかった。


http://togetter.com/li/806333

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20160103

2016-01-02

UTPC 2014

16:26

http://utpc2014.contest.atcoder.jp/

チーム抹茶として3人で参加した。

チームメイトが大変優秀で総合20位だった。

個人としてはE解いて、KとLの部分点とった。

このコンテスト、毎回難しいけど問題文も問題内容もユーモラスなのですばらしい。

トラックバック - https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20160102