ceil细胞合并每一秒一个细胞只能合并一次求达到不可合并状态所需的秒数

    xiaoxiao2021-03-26  4

    

    package work;

    import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner;

    public class Aceil {  static int data[];  static boolean used[];  static int minsec;

     public static void main(String[] args) throws FileNotFoundException {   /* Scanner sc=new Scanner(System.in); */   Scanner sc = new Scanner(new File("src/ceil"));   int T = sc.nextInt();   for (int t = 0; t < T; t++) {    int N = sc.nextInt();    data = new int[257];    used = new boolean[257];    for (int n = 0; n < N; n++) {     data[sc.nextInt()]++;    }    dfs(0);    //    for (int i = 1; i < 257; i++) {     if (data[i] != 0) {      System.out.print(i +":"+data[i] +" ");     }    }    System.out.println();    //    System.out.println(minsec);   }  }

     private static void dfs(int sec) {   minsec=sec;   if (check()) {    return;   }   for (int i = 128; i >= 1; i--) {    if (data[i] > 1) {     data[2 * i] += data[i] / 2;     if (data[i] % 2 == 0) {data[i] = 0;}     else {data[i] = 1;}    }   }   dfs(sec+1);  }

     private static boolean check() {   boolean temp=true;   for (int i = 0; i < data.length; i++) {    if (data[i] > 1) {     temp=false;     break;    }   }   return temp;  }

    }

    、、input

    1 6 1 2 4 2 1 16

    、、output

    2:1 8:1 16:1 2

    转载请注明原文地址: https://ju.6miu.com/read-600426.html

    最新回复(0)