- masashinakata
- 1292
- 0
- 0
- 0
GCJのE、列ごとに決めていっても、最後まで、Hallの結婚定理が成り立ち続ける理由が、たぶん分かった気がするのじゃ。 N*Nの行列で、1列決めるごとに、数字・位置の二部グラフの、全頂点の次数がNから1ずつ減っていく(偏って減ることがない)のが、鍵な気がする。
2020-04-05 14:52:17というか、AGC037 D Sorting a Gridのpdfで、そのまま言ってるのじゃ。当時は、たぶん理解してなかった! pic.twitter.com/QVepbgCfhz
2020-04-05 14:54:39GCJ Qual E - Indicium を O(N^2) で解く hackmd.io/@tatyam-prime/…
2020-04-05 15:33:33latin square 関連の pdf とか見てたときに latin rectangle の拡張はホールの結婚定理でマッチングがどうのこうので可能って確かに書いてあったんだけど、対角成分埋まってるし関係ないかなーってスルーしてた
2020-04-05 15:40:23というか対角成分の埋め方も分割数的な数だけパターン存在しててどうしよう……みたいな感じだった。 種類限定するって発想がなかったの失敗だったなぁ
2020-04-05 15:44:02QualのEは数字2~3種類だけ良い感じに並べて、それから数字単位で配置するようにマッチングを繰り返せば確かに詰まないな。なぜ列単位で決めようと思ってしまったのか…。
2020-04-05 16:34:53やっぱり理解してないのじゃ…。 初期の行・列の空きが一緒だったらいいのかなと思いきや、以下の反例ががありました。 何か抜けてるところがありますでしょうか? pic.twitter.com/JFflSaKbh1
2020-04-05 17:29:46@nico_shindannin 行ごと(頂点をひとつずつ順に)ではなく、「完全マッチングを1つずつ引いていけばよい」です。この問題の場合には、 「3の位置を決める」→「4の位置を決める」→・・・ ですね。
2020-04-05 17:38:49@maspy_stars maspyさんの方法は、空いているマスのx座標とy座標を二部グラフにしてマッチングする方法ですよね。それで、無事通りました。ありがとうございます! ただ、そうなると、公式解説にあった、場所と数値で列ごとにマッチングする方法は何を指していたのかが分からなくなってしまいました…。 pic.twitter.com/mrmYmNplwg
2020-04-05 18:17:23@nico_shindannin その通りで、行と列を頂点、マス目が辺と思います。 すいません、公式解説は読んでいないです。
2020-04-05 18:21:08GCJ 公式解説のEの方法、運よく解けるときもありそうだけど(自分の場合もほとんどは通る)、なんか違うような気もしてきたのじゃ。
2020-04-05 18:23:36@nico_shindannin 私も本番同じこと試したんですが、使える行が列によって違うので結果的に偏る事がありダメそうな気がしてます(なお手詰まりになったら対角成分をランダムシャッフルしてリトライという乱択で通しました)。
2020-04-05 18:50:48@pes_magic なるほど。ほとんどは確かに通るんですよね。やっぱり行ごとに決めると言ってる公式解説は?な気がしてきました…。
2020-04-05 18:54:37でも、配信するプログラマーって、昔はすごく少なかったのに、今は普通にぽんぽんされているので、時代も変わったものじゃのう…(遠い目)
2020-04-05 20:38:28おはようじゃ。昨日Google Code Jamが気になりすぎて、予想以上に時間を使ってしまったのじゃ… 仕事&競プロの両立も難しいのじゃが、競プロ(アルゴ)&競プロ(マラソン)の両立も難しいのじゃ。
2020-04-06 09:40:34えらそうに言ってるけど、できてない。 ↓ 「競プロ(アルゴ)&競プロ(マラソン)の両立」
2020-04-06 09:41:01TLの一般の方々に比べると、わしはだいぶ時間に余裕がある環境なので、甘えはダメじゃ!びしっ!びしっ!
2020-04-06 09:45:42