所有可达路径
import java.util.*;public class Test {static List<List<Integer>> res=new ArrayList<>();static List<Integer> path=new ArrayList<>();public static void main(String[] args) {Scanner in = new Scanner(System.in);int n=in.nextInt();int m=in.nextInt();int[][]graph=new int[n+1][n+1];for(int i=0;i<m;i++){int k1=in.nextInt();int k2=in.nextInt();graph[k1][k2]=1;}path.add(1);dfs(graph,1,n);if(res.size()==0)System.out.println(-1);else{for(List<Integer> list:res){for(int i=0;i<list.size()-1;i++){System.out.print(list.get(i)+" ");}System.out.println(list.get(list.size()-1));}}}public static void dfs(int[][]graph,int index,int n){if(index==n){res.add(new ArrayList<>(path));return;}for(int i=1;i<=n;i++){if(graph[index][i]==1){path.add(i);dfs(graph, i, n);path.removeLast();}}}}