题目大意
有n件衣服和一台烘干机,每件衣服都有一个湿度,烘干机可以让一件衣服更快地晾干,求晾干衣服的最短时间
题目分析
原题似乎有点表达不明确,使用烘干机应该是额外晾干B点湿度······
这道题很明显就用贪心做了,假如不考虑烘干机,那最后晾干的一定是湿度最大的衣服,所以我们要尽量降低最湿的衣服的湿度,那么每次使用烘干机都应该烘最湿的衣服。
用大根堆维护。
Code
#include<iostream>
#include<cstdio>
#include<queue>
#define sco 500010
using namespace std;
priority_queue<int,vector<int>,less<int> >q;
int n,a,b,t=0,h[sco];
int main(){
scanf("%d%d%d",&n,&a,&b);
for(int i=1;i<=n;++i){
scanf("%d",h+i);q.push(h[i]);
}
while(q.top()-t*a>0){
++t;
int x=q.top();
q.pop();
q.push(x-b);
}
printf("%d",t);
return 0;
}