2012-04-13 [長年日記]
λ. Google Code Jam 2012: Qualification Round
いつものように id: sakai で参加中。 今回は他に色々やりたいことがあったので、やる気あまりなかったけど、とりあえず Rank: 2771 Score: 60 でパス。
Problem A. Speaking in Tongues
問題毎に対応関係が違って頻度分析をして解くものだと思って解いてみたら、どうもサンプルと一致しない。 それで、対応関係は一つに固定されていてサンプルだけからそれが一意に決まることに気づく。
Problem B. Dancing With the Googlers
最低点と最高点の差が高々2なので、各人の総得点を3で割った余りから、サプライズがなかった場合のその人の得点内訳と、サプライズがあった場合のその人の得点内訳とがわかる(ここで、人の総得点が0だったときに、最初 -1,0,1 という実際にはありえない得点内訳を誤って考慮してしまって、その誤りに気づくのに時間をくってしまった)。あとは、「サプライズなしで基準を超えている人数 + min(サプライズ数, サプライズがあった場合に基準を超える人数)」を計算するだけ。
Problem C. Recycled Numbers
Smallは全列挙で。 Largeはまじめに解く必要があるかと思ったけど、全範囲について列挙したテーブル化して各caseで使いまわすようにしたら、最大のデータを作って実験しても大丈夫だったのでそれで。
Problem D. Hall of Mirrors
面倒くさそうだったのでパス。