Nella teoria dei grafi, un Cactus è un grafico collegato in modo tale che ogni due semplici cicli distinti nel grafico condividano al massimo un vertice.
Ecco un Cactus con 3 semplici cicli delineati con linee tratteggiate.
Il seguente grafico è simile a quello nella foto sopra ma non è un Cactus perché i due vertici etichettati in rosso sono condivisi da due semplici cicli.
Le cose possono diventare un po 'più complicate, ad esempio il seguente grafico:
Potrebbe sembrare un Cactus ma non lo è. Questo può essere mostrato evidenziando il seguente ciclo:
Questo ciclo condivide più di un punto con molti dei cicli più evidenti nel grafico.
definizioni
Un grafico collegato è un grafico tale che esiste almeno un percorso tra due vertici.
Un ciclo semplice è un percorso su un grafico che inizia e termina con lo stesso vertice e non visita alcun vertice più di una volta.
Un grafico semplice è un grafico non orientato, non ponderato in modo tale che nessun vertice sia collegato tra loro da più di un bordo e nessun vertice sia collegato a se stesso. Un semplice grafico è il tipo più semplice di grafico ed è ciò che la maggior parte delle persone intende quando dice grafico.
Compito
Prendi un semplice grafico come input e decidi se si tratta di un grafico Cactus. Dovresti generare due valori distinti uno per True e uno per False. Puoi ricevere input in qualsiasi formato che ritieni opportuno.
Questo è code-golf, quindi dovresti mirare a ridurre al minimo il numero di byte delle tue risposte.
e
contiene esattamente un elemento AND v
contiene esattamente 2 AND è v
uguale al primo elemento di e
? 2) OPPURE È v
uguale all'insieme dei primi elementi di ciascun elemento in e
? Il secondo caso test viene superato il primo controllo ( v=[1,2]=e[0]=[1,2]
) e gli altri casi di test che dovrebbero essere partita vera la seconda, ad esempio, caso # 4: v=[1,2,3,4,5,6]=[e[0][0],e[1][0],e[2][0],e[4][0]]=[1,2,3,4,5,6]
.
console.log(f([1,2,3,4,5,6,7,8,9,10,11,12,13])([[1,2],[1,3],[3,4],[2,4],[3,5],[5,6],[6,7],[7,8],[8,5],[7,9],[9,10],[10,11],[11,7],[8,12],[8,13]]))
true
o false
?