1 条题解

  • 0
    @ 2025-5-10 10:01:47
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Scanner;
    import java.util.StringTokenizer;
    
    public class q6 {
        static int[] hurt={5,4,3,2,1};
        static int count=0;
        static int n;
        public static void main(String[] args) {
            FastReader sc=new FastReader();
            int t=sc.nextInt();
            while (t-->0){
                n=sc.nextInt();
                int[] Hp =new int[n+1];
                for(int i=1;i<=n;i++){
                    Hp[i]=sc.nextInt();
                }
                backFind(0,Hp);
                System.out.println(count);
                count=0;
            }
        }
        public static void backFind(int curHurtIndex,int[] curHP){
            boolean b=true;
            for(int i=1;i<=n;i++){
                if(curHP[i]>0){
                    b=false;
                    break;
                }
            }
            if(b){
                count++;
                return;
            }
            if(curHurtIndex>=5){
                return;
            }
            int hurtNum=hurt[curHurtIndex];
            for(int i=1;i<=n;i++){
                if(curHP[i]>0){
                    int[] newHp=curHP.clone();
                    newHp[i]-=hurtNum;
                    backFind(curHurtIndex+1,newHp);
                }
            }
        }
        static class FastReader{
            StringTokenizer st;
            BufferedReader bf;
            public FastReader(){
                bf=new BufferedReader(new InputStreamReader(System.in));
            }
            String next(){
                while(st==null||!st.hasMoreElements()){
                    try {
                        st=new StringTokenizer(bf.readLine());
                    } catch(IOException e){
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }
            int nextInt(){
                return Integer.parseInt(next());
            }
        }
    }
    
    
    • 1

    信息

    ID
    6
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    51
    已通过
    14
    上传者