Isomorfisme de grafs P65235


Statement
 

pdf   zip

thehtml

Donats dos grafs no dirigits G1 i G2 amb n vèrtexs i m arestes cadascun, podeu determinar si són isomorfs, és a dir, si són bàsicament el mateix graf?

Suposeu que els n vèrtexs es numeren començant en 0. Més formalment, cal determinar si existeix alguna bijecció f : { 0, …, n − 1 } → { 0, …, n − 1 } tal que, per a cada parell de vèrtexs (x, y), x i y estan connectats amb una aresta a G1 si i només si f(x) i f(y) estan connectats amb una aresta a G2.

Entrada

L’entrada consisteix en diversos casos, cadascun amb n i m, seguides de les m arestes de G1, seguides de les m arestes de G2. Suposeu 2 ≤ n ≤ 14 i 0 < m < n(n − 1)/2. No hi ha més d’una aresta entre cada parell de vèrtexs, ni arestes entre un vèrtex i ell mateix.

Sortida

Per a cada cas, escriviu “yes” o “no” segons convingui.

Puntuació

La solució esperada és un backtracking raonablement optimitzat. El jutge us donarà una estimació de la nota màxima que podeu treure (7 o 10) en funció de l’eficiència del vostre codi. En qualsevol cas, tots els últims enviaments s’avaluaran manualment, inclosos els que rebin 0 punts automàtics.

Public test cases
  • Input

    3 2
    0 1  1 2
    2 0  1 0
    
    4 5
    0 1  1 2  3 2  0 3  3 1
    3 2  3 1  2 1  2 0  1 0
    
    5 5
    0 1  0 2  1 2  0 3  0 4
    4 3  4 2  3 2  4 1  1 0
    

    Output

    yes
    yes
    no
    
  • Information
    Author
    Enric Rodriguez
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++