Google Code Jam 2010 Round1B

  2010/05/25 15:36

1Aは寝坊しました!
最近実務ばかりで、PHPしか書いてないから最初戸惑ったが、、、Javaバンザイ。

Google Code Jam 2010 is in Dublin!
http://code.google.com/codejam

File Fix-it

Unixのディレクトリー構造。知ってることが問題だと楽。
mkdirの-pオブションをつけずにディレクトリーを作っていく場合の手数を出す。
Largeでもmax(N)=max(M)=100なので、JavaならばHashSetですぐ。

Picking Up Chicks

最初問題の意味がさっぱり分からなかった。
チキンをどうするんだ!チキンを!

相当悩む。テストケース見て意味を探る。
Kの意味の理解に苦しんだ。
最低限スワップする数??や、この数だけチキンが来ればいいんだ!(ここでアハ体験)
(ここで30分以上かかった)

問題の解釈。

  • (スワップしなければ)並び順通りにゴールしていく!入力が優しい。
  • 順に見ていくうちに時間過ぎたら、それ以降の奴らはスワップしない限り間に合わない
  • (それでもKに満たないならば、)後ろにいる時間内にゴールできるやつを前に出す。
    抜いた分だけがコスト
  • 後ろまでみてKに満たないならばそれはミッションインポッシブル!

ここからは書くだけ。
スワップを何で実装しようか迷ったけど、せっかくJavaなんだからLinkedList使うことにした。

LinkedList<Double> time = new LinkedList<Double>();
// 先頭に追加
time.addFirst(t);
// jに追加
time.add(j, target);
// jを削除
time.remove(j);

なんてらくちんな。

Your Rank is Pure

やー、全く問題の意味がわからなかった。
なにこれ?
サンプルも2つしか載ってないし。
まだ1時間以上残ってたけど全く解ける気がしなかった。

30分切ったくらいで諦める。2問解いて56pだしいけるんじゃない?って。
したら、みんなsmallはどんどん解いていく。。。どこをどう解釈したら??

それでも解けないでモヤモヤしてたら終了!その時点で1070位前後。あー。
largeでどれだけ落ちるかと期待したけれど、結果1010位!あと9人!!あと1分ちょい早ければ!!!

これはすげーへこんだ。。
なので、次の日あるのにチャンピオンズリーグを見てしまいましたとさ!
(この終了時間は絶対CL決勝を意識したんだろう!と思ってしまう笑)

1Cは出られなかったので、これで今年のGCJは終わり。
来年また頑張ります。