Ho bisogno del vostro aiuto visto che non riesco a risolvere il seguente esercizio:
Il testo dice:
Progetta un algoritmo che sia in grado di rimuovere tutti i cicli di un grafo orientato G=(V,E) in tempo O(m+n) ,dove m è il numero di archi ed n è il numero di vertici del grafo. Rimuovere un ciclo significa rimuovere un arco del ciclo . Se ci sono l cicli in G il tuo algoritmo dovrebbe rimuovere solo O(l) archi.

Vi posto la mia soluzione:
pensavo di fare una visita DFS. Appena viene trovato un arco che non appartiene all'albero DFS viene eliminato...così elimino l'arco che non appartiene all'albero e che costituisce un ciclo....penso che sia così ma ho un altro problema... può succedere che così si tolga anche archi che non fanno parte di un ciclo...
come posso risolvere secondo voi???