SRM482
インターンが無事終了したのでTopCoderにも復帰。
しばらく競技プログラミングから遠ざかっていたら、随分と腕がなまっているらしいことがICPCのチーム練習で発覚しました。リハビリリハビリ。
250: LockersDivOne
500: HanoiGoodAndBad
- Daveステップ目の形がどんなものかは愚直にシミュレーションしても十分間に合うので。
- つまり Earl の形が何ステップ目かを求めるのがキモなわけですね。
- ...って、同じような問題を考えたことがあるのだけど。
- 「普通のルールのハノイの塔の途中経過が与えられます。何ステップ目か求めてね」という問題。UAPC2011か何かに出すつもりでした。
- この問題はもう使えないなぁ。残念。とっとと出しておけば良かった。
- 「普通のルールのハノイの塔の途中経過が与えられます。何ステップ目か求めてね」という問題。UAPC2011か何かに出すつもりでした。
- 気を取り直して、この問題のために用意した解法がそのまま使えないだろうか?
- 一番大きな円盤がどこにあるかによって、上の部分塔が動かされた回数が分かるので、それに部分塔を動かすステップ数 (式から求まる) を掛けて足す。
- 動かし途中の部分塔のステップ数は再帰的に求める。
- がりがりがり。ねむい。かけた。
- とんでもない値が出てきたぞ・・・?
- ...
- あ、一ヶ所 return が抜けてて評価するだけになってる。修正。
- ...近い値が出てきた。けど、サンプルが全部 -2 から 6 ぐらいずれてるってどういうことだ・・・?
- うーむ。方針は合ってるに違いないけど。
- ねむい。あたまがまわらない。ねたい。
- ...
- ...
- あれ?高さ N の塔のステップ数が 3N になってる?
- 再帰の終了条件もおかしい・・・。もう1段掘らないと。
- なんかサンプル出てきた。これでいいのかな。
- Mediumなんて滅多に解けないので不安になる。
- 一応最大ケースを突っ込んで確認。よし合ってる。
- submit!
- 見直しするようなところもあんまりないし、1000は無理ゲーなのでのんびりまったり。
Challenge Phase
- おいしいところは自分が開く前に他の人に持っていかれました。
- 500でちょっと独特なことをやってる人がいた (それどころか私を落とそうとして失敗してた) 人がいたのですが静観。
- 最後の最後で赤い人に落とされてました。
- プラマイゼロでフィニッシュ。
System Test
- oox 439.29
- 1390 -> 1550
- 黄色復帰。やったー。
- 次の課題は実装・・・というよりデバッグの遅さをどうにかすることかな。