【YbtOJ高效進階 貪心-1】奶牛晒衣服
阿新 • • 發佈:2020-12-27
小目錄
連結
題目描述
有 n n n件衣服,第 i i i件衣服的溼度為 h i h_i hi。
在自然條件下,每件衣服每分鐘都可以自然晒乾 a a a點溼度。
在烘乾機作用下,可以選擇一件衣服,用一分鐘的時間晒乾 點 b b b溼度。
求出晒乾所有衣服的最少時間(溼度為 0 0 0為幹)。
樣例輸入
3 2 1
1
2
3
樣例輸出
1
思路
看了樣例才知道,自然條件和烘乾機是可以同時使用的
最少時間,意味著求得就是最後一件衣服烘乾的時間
不考慮烘乾機的話,我們所需要的時間就是
h
m
a
x
−
t
∗
A
<
=
0
h_{max} - t * A <= 0
hmax−t∗A<=0的
t
t
t,那烘乾機肯定就是給當前溼度最大的用,那用一個大根堆維護即可
程式碼
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
int h[500005];
int x, a, n, b, ans;
priority_queue<int> Q;
int main()
{
scanf("%d%d%d" , &n, &a, &b);
for(int i = 1; i <= n; ++i)
scanf("%d",&h[i]);
for(int i = 1; i <= n; ++i)
Q.push(h[i]);
while(Q.top() - ans * a > 0)
{
ans++;
int tot = Q.top();
Q.pop();
Q.push(tot - b);
}
printf("%d", ans);
return 0;
}