奶牛晒衣服
ybtoj 贪心-1-1
题目大意
有n件衣服,每件衣服有一个湿度,每一个单位时间所有衣服会湿度-a,同时可以选择一件衣服使其湿度-b,问最短在多久可以使所有衣服湿度小于等于0
输入样例
3 2 1
1
2
3
输出样例
1
数据范围
1⩽n,a,b,hi⩽5×1051\leqslant n,a,b,h_i\leqslant 5\times 10^51⩽n,a,b,hi⩽5×105
解题思路
用堆求湿度最大的衣服
每个单位时间找出湿度最大的衣服湿度-b
每次判断湿度最大的衣服湿度是否小于t×at\times at×a
代码
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
int n, a, b, x, t;
priority_queue<int>d;
int main()
{scanf("%d%d%d", &n, &a, &b);for (int i = 1; i <= n; ++i){scanf("%d", &x);d.push(x);}while(d.top() > a * t)//加上自然烘干的时间是否已干{t++;d.push(d.top() - b);//最大的-bd.pop();}printf("%d", t);return 0;
}