638.1

Adminは問題の難易度をもう少しまじめに把握した方が良いと思う。

300

N*N*Nの領域に1*1*1のキューブが適当に連結に詰んである。各方面から見たときに、見える見えないの情報が与えられるので、そんな積み方は可能か答えよ、という問題。


取り敢えず明らかにない場所を潰して、連結領域すべてについて、そういう見え方があるか調べるだけ。領域が分割されたりとかもあり得るので、注意が必要。

600

整数配列が与えられる。和がK以下のペアのみswap可能とするとき、最終的に可能な並び順は何通りか答えよ、という問題。


大きい順に移動可能かどうかで分割しても解けなくはない。小さい順に移動できる範囲を決めて、後は残りを計算、というのが正しいらしい。頭いいね。

800

木が与えられる。葉を適当に選ぶとき、葉から一番遠い点までの距離として可能なものは何通りあるか答えよ、という問題。


葉から葉までが一番遠いか、葉と葉の中間点が一番遠いかのいずれか。葉を全パターン試すのはさすがにムリなので、葉のペアを選らんで、それぞれについて、中間点か自分達かが一番遠くなるような葉の選び方が可能かを調べていく。(多分求めるのが可能な距離のパターンなので、こういうのでもうまく行く気がする。)