[AtCoder] ABC 091 C – 2D Plane 2N Points
問題
方針
二部マッチング問題
基本的には、[AOJ] GRL_7_A Bipartite Matchingと同じようにして解くことができます。
頂点は与えられますが、辺がどのようになっているかは自分で実装しなければいけません。赤い点のラベリングを \( 0 \) から \(N – 1\) で与え、青い点を \( N \) から \( 2 * N – 1 \) で与えます。このとき、辺が張られる条件は、\( a[i] < c[j] \wedge b[i] < d[j] \) を満たす全ての \( i , j\) です。これは二重ループで求めることができます。
コード
提出したコード
隣接リストの作成
// 隣接リストの作成 for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (a[i] < c[j] && b[i] < d[j]) add_edge(i, j + N); } }
ディスカッション
コメント一覧
まだ、コメントがありません