mini notes

競技プログラミングの解法メモを残していきます。

ARC111 B - Reversible Cards

問題:B - Reversible Cards

解答:Submission #19370578 - AtCoder Regular Contest 111

解法:解説通り、カードに書いてある数字を頂点、カードの数字の組み合わせを辺とするグラフを考えるのがミソ。すると問題は各辺のうち片方の頂点に色付けし、色のついた頂点の個数の最大値を求める問題になる。これは連結成分ごとに辺と頂点の個数の関係性を考えてゆくとよい。なお、グラフには多重辺(2枚以上の同じカード)や自己ループ(表と裏が同じ数字のカード)も含まれることに注意が必要。

各連結成分において辺の数が最も少ないのは連結成分が木である場合である。このときは頂点数をNとすると辺数はN-1になるので、色のついた頂点は最大N-1個である。これより辺が多い場合は全ての頂点の色付けが可能である。よって連結成分ごとに頂点の数と辺の数を比較して色付け可能な頂点数を答えに足し上げてゆけばよい。