C - Make Isomorphic Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 300300

問題文

頂点 1,1, 頂点 2,,2,\ldots, 頂点 NNNN 個の頂点からなる単純無向グラフ G,HG,H が与えられます。 GG には MGM _ G 本の辺があり、ii 本目 (1iMG)(1\leq i\leq M _ G) の辺は頂点 uiu _ i と頂点 viv _ i を結んでいます。 HH には MHM _ H 本の辺があり、ii 本目 (1iMH)(1\leq i\leq M _ H) の辺は頂点 aia _ i と頂点 bib _ i を結んでいます。

あなたは、グラフ HH に対して次の操作を 00 回以上の好きな回数繰り返すことができます。

  • 1i<jN1\leq i\lt j\leq N を満たす整数の組 (i,j)(i,j) をひとつ選ぶ。Ai,jA _ {i,j} 円を支払って、頂点 ii と頂点 jj を結ぶ辺がなければ追加し、あれば取り除く。

GGHH を同型にするために少なくとも何円支払う必要があるか求めてください。

単純無向グラフとは?

単純無向グラフとは、自己ループや多重辺を含まず、辺に向きの無いグラフのことをいいます。

グラフの同型とは?

NN 頂点のグラフ GGHH同型であるとは、ある (1,2,,N)(1,2,\ldots,N) の並べ替え (P1,P2,,PN)(P _ 1,P _ 2,\ldots,P _ N) が存在して、どの 1i<jN1\leq i\lt j\leq N に対しても

  • GG に頂点 i,i, 頂点 jj を結ぶ辺が存在するとき、かつそのときに限り HH に頂点 Pi,P _ i, 頂点 PjP _ j を結ぶ辺が存在する
が成り立つことをいいます。

制約

  • 1N81\leq N\leq8
  • 0MGN(N1)20\leq M _ G\leq\dfrac{N(N-1)}2
  • 0MHN(N1)20\leq M _ H\leq\dfrac{N(N-1)}2
  • 1ui<viN (1iMG)1\leq u _ i\lt v _ i\leq N\ (1\leq i\leq M _ G)
  • (ui,vi)(uj,vj) (1i<jMG)(u _ i,v _ i)\neq(u _ j,v _ j)\ (1\leq i\lt j\leq M _ G)
  • 1ai<biN (1iMH)1\leq a _ i\lt b _ i\leq N\ (1\leq i\leq M _ H)
  • (ai,bi)(aj,bj) (1i<jMH)(a _ i,b _ i)\neq(a _ j,b _ j)\ (1\leq i\lt j\leq M _ H)
  • 1Ai,j106 (1i<jN)1\leq A _ {i,j}\leq 10 ^ 6\ (1\leq i\lt j\leq N)
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN
MGM _ G
u1u _ 1 v1v _ 1
u2u _ 2 v2v _ 2
\vdots
uMGu _ {M _ G} vMGv _ {M _ G}
MHM _ H
a1a _ 1 b1b _ 1
a2a _ 2 b2b _ 2
\vdots
aMHa _ {M _ H} bMHb _ {M _ H}
A1,2A _ {1,2} A1,3A _ {1,3} \ldots A1,NA _ {1,N}
A2,3A _ {2,3} \ldots A2,NA _ {2,N}
\vdots
AN1,NA _ {N-1,N}

出力

答えを出力せよ。


入力例 1Copy

Copy
5
4
1 2
2 3
3 4
4 5
4
1 2
1 3
1 4
1 5
3 1 4 1
5 9 2
6 5
3

出力例 1Copy

Copy
9

与えられたグラフはそれぞれ以下のようになります。

たとえば、HH に対して次のような 44 つの操作を順に行うことで、99 円を支払ってGGHH を同型にすることができます。

  • (i,j)=(1,3)(i,j)=(1,3) として操作を行う。HH には頂点 11 と頂点 33 を結ぶ辺があるので、11 円を支払ってこれを取り除く。
  • (i,j)=(2,5)(i,j)=(2,5) として操作を行う。HH には頂点 22 と頂点 55 を結ぶ辺はないので、22 円を支払ってこれを追加する。
  • (i,j)=(1,5)(i,j)=(1,5) として操作を行う。HH には頂点 11 と頂点 55 を結ぶ辺があるので、11 円を支払ってこれを取り除く。
  • (i,j)=(3,5)(i,j)=(3,5) として操作を行う。HH には頂点 33 と頂点 55 を結ぶ辺はないので、55 円を支払ってこれを追加する。

操作の結果、HH は以下のようになります。

支払う金額を 88 円以下にして GGHH を同型にすることはできないため、9 を出力してください。


入力例 2Copy

Copy
5
3
1 2
2 3
3 4
4
1 2
2 3
3 4
4 5
9 1 1 1
1 1 1
1 1
9

出力例 2Copy

Copy
3

たとえば、(i,j)=(2,3),(2,4),(3,4)(i,j)=(2,3),(2,4),(3,4) とした 33 回の操作を行うことで GGHH を同型にすることができます。


入力例 3Copy

Copy
5
3
1 2
2 3
3 4
4
1 2
2 3
3 4
4 5
5 4 4 4
4 4 4
4 4
5

出力例 3Copy

Copy
5

たとえば、(i,j)=(4,5)(i,j)=(4,5) とした 11 回の操作を行うことで GGHH を同型にすることができます。


入力例 4Copy

Copy
2
0
0
371

出力例 4Copy

Copy
0

GGHH には辺が含まれていないこともあります。 また、一度も操作をする必要がないこともあります。


入力例 5Copy

Copy
8
13
1 8
5 7
4 6
1 5
7 8
1 6
1 2
5 8
2 6
5 6
6 7
3 7
4 8
15
3 5
1 7
4 6
3 8
7 8
1 2
5 6
1 6
1 5
1 4
2 8
2 6
2 4
4 7
1 3
7483 1694 5868 3296 9723 5299 4326
5195 4088 5871 1384 2491 6562
1149 6326 2996 9845 7557
4041 7720 1554 5060
8329 8541 3530
4652 3874
3748

出力例 5Copy

Copy
21214

Score : 300300 points

Problem Statement

You are given simple undirected graphs GG and HH, each with NN vertices: vertices 11, 22, \ldots, NN. Graph GG has MGM_G edges, and its ii-th edge (1iMG)(1\leq i\leq M_G) connects vertices uiu_i and viv_i. Graph HH has MHM_H edges, and its ii-th edge (1iMH)(1\leq i\leq M_H) connects vertices aia_i and bib_i.

You can perform the following operation on graph HH any number of times, possibly zero.

  • Choose a pair of integers (i,j)(i,j) satisfying 1i<jN1\leq i<j\leq N. Pay Ai,jA_{i,j} yen, and if there is no edge between vertices ii and jj in HH, add one; if there is, remove it.

Find the minimum total cost required to make GG and HH isomorphic.

What is a simple undirected graph?

A simple undirected graph is a graph without self-loops or multi-edges, where edges have no direction.

What does it mean for graphs to be isomorphic?

Two graphs GG and HH with NN vertices are isomorphic if and only if there exists a permutation (P1,P2,,PN)(P_1,P_2,\ldots,P_N) of (1,2,,N)(1,2,\ldots,N) such that for all 1i<jN1\leq i\lt j\leq N:

  • an edge exists between vertices ii and jj in GG if and only if an edge exists between vertices PiP_i and PjP_j in HH.

Constraints

  • 1N81\leq N\leq8
  • 0MGN(N1)20\leq M _ G\leq\dfrac{N(N-1)}2
  • 0MHN(N1)20\leq M _ H\leq\dfrac{N(N-1)}2
  • 1ui<viN (1iMG)1\leq u _ i\lt v _ i\leq N\ (1\leq i\leq M _ G)
  • (ui,vi)(uj,vj) (1i<jMG)(u _ i,v _ i)\neq(u _ j,v _ j)\ (1\leq i\lt j\leq M _ G)
  • 1ai<biN (1iMH)1\leq a _ i\lt b _ i\leq N\ (1\leq i\leq M _ H)
  • (ai,bi)(aj,bj) (1i<jMH)(a _ i,b _ i)\neq(a _ j,b _ j)\ (1\leq i\lt j\leq M _ H)
  • 1Ai,j106 (1i<jN)1\leq A _ {i,j}\leq 10 ^ 6\ (1\leq i\lt j\leq N)
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

NN
MGM _ G
u1u _ 1 v1v _ 1
u2u _ 2 v2v _ 2
\vdots
uMGu _ {M _ G} vMGv _ {M _ G}
MHM _ H
a1a _ 1 b1b _ 1
a2a _ 2 b2b _ 2
\vdots
aMHa _ {M _ H} bMHb _ {M _ H}
A1,2A _ {1,2} A1,3A _ {1,3} \ldots A1,NA _ {1,N}
A2,3A _ {2,3} \ldots A2,NA _ {2,N}
\vdots
AN1,NA _ {N-1,N}

Output

Print the answer.


Sample Input 1Copy

Copy
5
4
1 2
2 3
3 4
4 5
4
1 2
1 3
1 4
1 5
3 1 4 1
5 9 2
6 5
3

Sample Output 1Copy

Copy
9

The given graphs are as follows:

For example, you can perform the following four operations on HH to make it isomorphic to GG at a cost of 99 yen.

  • Choose (i,j)=(1,3)(i,j)=(1,3). There is an edge between vertices 11 and 33 in HH, so pay 11 yen to remove it.
  • Choose (i,j)=(2,5)(i,j)=(2,5). There is no edge between vertices 22 and 55 in HH, so pay 22 yen to add it.
  • Choose (i,j)=(1,5)(i,j)=(1,5). There is an edge between vertices 11 and 55 in HH, so pay 11 yen to remove it.
  • Choose (i,j)=(3,5)(i,j)=(3,5). There is no edge between vertices 33 and 55 in HH, so pay 55 yen to add it.

After these operations, HH becomes:

You cannot make GG and HH isomorphic at a cost less than 99 yen, so print 9.


Sample Input 2Copy

Copy
5
3
1 2
2 3
3 4
4
1 2
2 3
3 4
4 5
9 1 1 1
1 1 1
1 1
9

Sample Output 2Copy

Copy
3

For example, performing the operations (i,j)=(2,3),(2,4),(3,4)(i,j)=(2,3),(2,4),(3,4) on HH will make it isomorphic to GG.


Sample Input 3Copy

Copy
5
3
1 2
2 3
3 4
4
1 2
2 3
3 4
4 5
5 4 4 4
4 4 4
4 4
5

Sample Output 3Copy

Copy
5

For example, performing the operation (i,j)=(4,5)(i,j)=(4,5) once will make GG and HH isomorphic.


Sample Input 4Copy

Copy
2
0
0
371

Sample Output 4Copy

Copy
0

Note that GG and HH may have no edges.

Also, it is possible that no operations are needed.


Sample Input 5Copy

Copy
8
13
1 8
5 7
4 6
1 5
7 8
1 6
1 2
5 8
2 6
5 6
6 7
3 7
4 8
15
3 5
1 7
4 6
3 8
7 8
1 2
5 6
1 6
1 5
1 4
2 8
2 6
2 4
4 7
1 3
7483 1694 5868 3296 9723 5299 4326
5195 4088 5871 1384 2491 6562
1149 6326 2996 9845 7557
4041 7720 1554 5060
8329 8541 3530
4652 3874
3748

Sample Output 5Copy

Copy
21214


2025-04-23 (Wed)
18:19:14 +00:00