アルゴリズム忘備録

競技プログラミングとかデータ分析とか

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万程度にできる。