TopCoder Open Round1A
Easy(250)
卓球台があって、最初試合待ちの人が順番に並んでる。それぞれint[] skillの値のスキルを持っている。
対戦はskillが高いほうがかならず勝つ。先頭に並んでる人が対戦し、負けた人は最後尾に、ただしN連勝したら勝った方も最後尾にいく。K回後の対戦の試合結果を求めよ。
方針:Queueを使って愚直にシミュレーション
Med(500)
大きさA x B x Cの直方体のチーズがある。これを幾つかの断片に切り分けるとき、厚さS以上の断片を持つチーズは最大で面積いくらまで作れるか。ただし、チーズの厚さとは直方体の中で一番短い辺の長さとする。
方針:3方向に厚さSの断片を切り取った時の最大値 というdfsを書いてメモ化。A B Cが全て100以下なので、状態数は100万程度にできる。