大佬你好,我看第二题没有对全排列的顺序有要求呀。为什么我这个只是输出顺序和你完全相反,其他结果全部一样,为什么只能过1/8;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public void DFS(int n, int k,int tar,int level, List<Integer> list,List<List<Integer>>lists){
        if(level==k){
            List<Integer> t=new ArrayList<>();
            t.addAll(list);
            lists.add(t);
            return;
        }
        for(int i=tar;i<=n;i++){
            list.add(i);
            DFS(n,k,i,level+1,list,lists);
            list.remove(level);
        }
    }
    public void printres(int n,int k){
        List<List<Integer>>lists=new ArrayList<>();
        List<Integer> list=new ArrayList<>();
        DFS(n,k-1,0,0,list,lists);
        System.out.println(lists.size());
        for(int i=0;i<lists.size();i++){
            int pre=0;
            for(int j=0;j<lists.get(i).size();j++) {
                for (int w = pre; w < lists.get(i).get(j); w++) {
                    System.out.print("*");
                }
                System.out.print("|");
                pre = lists.get(i).get(j);
            }
            for(int q=pre;q<n;q++){
                System.out.print("*");
            }
            System.out.println();
        }

    }
    public static void main(String[] args) {
        Main main=new Main();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int k=sc.nextInt();
        main.printres(n,k);
        }
}