beet's soil

競プロのことなど

ACPC_VC_20191209_DIV1

800(大嘘)やめろ

Teleporter

どの町から出発しても、テレポーターを何回か使うことで首都へ辿り着ける なので、グラフは木
あとは適当にちぎって根にくっつけるんだけど、まあギリギリまで待ったほうがいい気がして実際そう 証明:AC

マス目と整数 / Grid and Integers

800(大嘘)やめろ

まあ二つの数列 A,B が存在して ayx=Ay+Bx なのはそう
二部グラフなので片方の符号を反転すると二変数の差制約になる → 最小費用流の双対

beet-aizu.hatenablog.com

A,B をポテンシャルと捉えて目的関数が0になるかどうかで判定する

AyBx=ayxAyBxayxAyBxayx にバラす
条件1は任意の y,x に対して AyBx0 と書ける

整理すると
maxAy,Bxb
s.t.
AyBxbyxayx
BxAybxyayx
BxAyb0

俺たちのprimaldualを信じろ → TLE (それはそう)

グラフとグッと睨むとポテンシャルの差が経路に依存しないことがわかるので、連結成分ごとに適当にやる→AC

Tree Restoring

構築までするライブラリを持っています 〜完〜
community.topcoder.com

感想

機械的にぶん殴れると、たのしい