1. 程式人生 > 其它 >【YbtOJ高效進階 貪心-1】奶牛晒衣服

【YbtOJ高效進階 貪心-1】奶牛晒衣服

技術標籤:貪心貪心

小目錄

連結

YbtOJ高效進階 貪心-1

題目描述

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

hmaxtA<=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; }