2011-10-01から1ヶ月間の記事一覧

Google Code Jam Japan 2011 本戦 B. バクテリアの増殖

B : バクテリアの増殖 この問題を解くための基本アイディアとして n時間後のバクテリア数を x(n) とする ( x(n)^x(n) )%C = ( (x(n)%C)^x(n) )%C である ((x(n)%C)^p)%C = 0 となるpがなければ、x(n)%C のべき乗は値が循環する その循環の長さを y とすると …

Google Code Jam Japan 2011 本戦 C. ワイルドカード

C : ワイルドカード 以下のようなDP配列 dp[i][j] を用意する i : aにマッチし、最後の"*"を除くとi文字目までマッチするパターン j : bにマッチし、最後の"*"を除くとj文字目までマッチするパターン j = b.size()+1 のときはbにマッチしないパターンを表す …

Google Code Jam Japan 2011 本戦 D. クローゼットルーム(small)

D : クローゼットルーム smallは全探索っぽいし時間余ったらやろうと思ったまま忘れ去られた問題 1つの点から タンスの置き方4通り + 置かない1通り を試す 壁や他のタンスと重なったり、ドアが塞がったらその置き方は諦める という感じで、DFSしていけば良い

Google Code Jam Japan 2011 本戦 C. ワイルドカード(small)

C : ワイルドカード 本戦では、なぜかlarge行ける!と思ってしばらくハマってた問題 「AにマッチするがBにマッチしない」という文面に気付くまで1時間かかった(´;ω;`) largeを捨ててしまえば、smallは全探索で良い Aの文字を"*"で置き換えて、連続する"*"…

Google Code Jam Japan 2011 本戦 B. バクテリアの増殖(small)

B : バクテリアの増殖 本戦では、smallでも多倍長がいるなぁと思って諦めたのですが…。 多倍長で計算すれば良いらしかったです。これは目からウロコでした。 勉強がてらpythonとjavaで書いてみました。 こうしてみるとpythonのお手軽感ぱない

Google Code Jam Japan 2011 本戦 A. アンテナ修復

先日行われた本戦は、Aで2WAも出したことで完全に動揺し、 Tシャツ圏内は入りそうだしと安心しきってC-Largeに挑んでいたところ、 気付いたらTシャツ圏外に、C-Largeも組み上がらず、という残念な結果でした。解けたものから記事を残して、反省しておこうと…

SRM520

良いするめセットでした。(何を言ってるんだという感じですが) - 250. SRMCodingPhase 問題:SRMの3問それぞれを解くのにかかる時間と、解く時間をluck分縮める権利が与えられるので、得られる最大の点数を求める 点数高い問題から貪欲にluckを使う感じ? 解…

Google Code Jam Japan 2011 予選

友人たちとノープラン温泉旅行に出かけつつの参戦。 ノープランな中でわずかな時間を見つけて頑張ってみました。 - A : カードシャッフル 30分の電車移動が発生したので、おもむろにノートPCを起動して問題を読んだ。 TopCoderで同じような問題見たなぁ…。 …