Google Code Jam 2010 Round1B
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は終わり。
来年また頑張ります。
