2013-02-22
SRM 570
Div1 Easy (250) RobotHerb
問題
- ロボットがXY平面上を移動する
- 命令が数値の配列で与えられる
- 各命令では数値nだけ直進し、n回90度右回転する
- 命令列全体をT回実行後、スタート地点からのマンハッタン距離を求める
方針
- サンプル読んで、シーケンスa全体をT回繰り返すことを確認
- 実行後の向きは4通り
- aの実行後、向きが最初と同じなら、距離が単純に増加していく
- そうでない場合は次の実行でもまた角度が変わる
- よく考えたら4通りどのパターンでも、4回実行したら元の角度に戻る
- 4回愚直にaを実行して、結果の距離をT/4倍してから、T%4回実行すればよい
- 提出
- Passed System Test
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_570/RobotHerb.cpp
Div2 Hard (1000) CentaurCompanyDiv2
問題
- 株式会社ケンタウロスにはN台のサーバがある
- 会社を株式会社人間と株式会社馬に分割することにした
- 各サーバは木構造で接続されている
- 各サーバはそれぞれのどちらかに所属する
- 分割後、元々接続されていなかったサーバはケーブルが必要になる
- 馬は十分なケーブルを持っているが人間は持っていない
- 人間側がケーブルを必要とする分割はできない
- 有効な分割が何通りか求める
方針
- 木DPらしい
- なんと弟子がスライドを書いてくれた。わかりやすい!
- https://github.com/atkanon/TopCoder/raw/master/SRM570/srm570div2hard.pdf
- 大まかな手順としては、あるノードを親ノードPとして、P以下だけが選択された場合の数Kを求める
- DFSで子ノードCを親ノードとした場合の数Xを求める
- その子ノードを使わない選択肢もあるので、その子ノードについてX+1通り
- 全ての子ノードについて、あり得るパターンは掛け算なので、X+1の積を取る
- Kを記憶しておく
- Kの総和に、全てのノードを選択しなかった場合(全部馬)の1を加えたものが答え
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_570/CentaurCompanyDiv2.cpp
結果
o-- 198.96pt 246th/740 rating 1364 -> 1449 (+85)
div1 mediumが難しかったためeasyの速解き回。順位はとても良かった。久しぶりの1400台。
easyはアフィン変換でも解けるようなので試してみた。繰り返し二乗法で短縮可能。
div2 hardは問題文が面白い。馬って何だろうと考えてしまった。accumulateの初期値に0と書いたら戻り値がintになってしまいはまった。初心者すぎる。
- 35 https://topcoder-g-hatena-ne-jp.jag-icpc.org/
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=srm534&source=web&cd=3&ved=0CEEQFjAC&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120225/1330153505&ei=NMEpUc0HhLGSBbmWgEg&usg=AFQjCNFGOxZcr9SIWeLlFSoWcLbrm44s_g&sig2=hcQh3-ULrVex7rfISggVfg&bvm=bv.42768644,d.dGI
- 1 http://www.hatena.ne.jp/o/search/top?q=topcoder
- 1 http://www.google.com/url?sa=t&rct=j&q=srm+556&source=web&cd=4&ved=0CEIQFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120917/1347897332&ei=boInUYuYOOOgmQXiiYHgDg&usg=AFQjCNEii-hysudckA1LBalYbouyPiSFNw
- 1 http://search.yahoo.co.jp/search?p=TopCoder+147+Div2&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=
- 1 https://topcoder-g-hatena-ne-jp.jag-icpc.org/keyword/Codeforces
- 1 https://topcoder-g-hatena-ne-jp.jag-icpc.org/n4_t/
- 1 https://topcoder-g-hatena-ne-jp.jag-icpc.org/keyworddiary/Codeforces
- 1 https://www.google.co.jp/
- 1 http://www.google.co.jp/search?q=hacker+cup&ie=UTF-8&oe=UTF-8&hl=ja&client=safari