调用java自带的优先队列解题
import java.util.Scanner;
import java.util.PriorityQueue;
public class Main {
public static void main(String[] args) {
PriorityQueue<Integer> minPQ = new PriorityQueue<>();
int n, k;
Scanner in = new Scanner(System.in);
n = in.nextInt();
k = in.nextInt();
for (int i = 1; i <= n; i++) {
minPQ.add(in.nextInt());
}
int degree = 0;
int day = 0;
while (degree < k) {
int min = minPQ.poll();
degree += min;
minPQ.add(min * 2);
day++;
}
day--;//由于多加了一天,要减回去
System.out.println(day);
}
}

京公网安备 11010502036488号