407.1

今回は250と500の早解きセットでした。チャレンジの余地は若干あったらしいけれど、なかったようなもの。

250

部下のいない人の給料を1、それ以外の人の給料を直属の部下の給料の総和、とするとき、全員の給料の合計を答えよという問題。


単純に実装するだけ。上司と部下の関係は推移的で云々と長文が書いてあるのに騙されなければ問題ない。

500

N個の点を交互に選択していく。プレイヤー1が取った点とプレイヤー2が取った点の距離の相和を最小にするようにプレイヤー2が行動するとき、可能な最大値を求めよ、という問題。


いわゆるminimaxというかalpha-betaというか。単純実装系なので、いかに速く、正確に実装できますか、という問題。

1000

あるバイナリの行列を別のバイナリの行列に、隣接点をスワップして変形する。各点のスワップして良い回数が与えられるので、最小スワップ回数を答えよという問題。できない時は-1を返す。


グラフをうまいこと変形して、最小費用流にすれば良いそうです。変形だけでも難しいのに最小費用流...。最小費用流のところを今読書中で、遅いアルゴリズムなら分かったけれど、普通に実装するだけだとTLEするらしい。どうしたものでしょう?