【ybtoj】【貪心】【堆】【例題1】奶牛曬衣服

lnm_lym發表於2020-12-25

傳送門


解題思路

每次最慢的一件衣服使用烘乾機
設一個 a n s ans ans為時間、

  • 最慢的一件衣服 > a n s ∗ A > ans * A >ansA,對這件衣服使用烘乾機
  • 最慢的一件衣服 ≤ a n s ∗ A \leq ans * A ansA a n s ans ans就已經是答案了

Code

#include <iostream>
#include <cstdio>
#include <queue>

using namespace std;

priority_queue<int> f;//大根堆
int n, A, B, a[501000], ans, t;

int main() {
    scanf("%d%d%d", &n, &A, &B);
    for (int i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
        f.push(a[i]);
    }
    while (f.top() > ans * A) {
        ans++;
        t = f.top();
        f.pop();
        f.push(t - B);
    }
    printf("%d", ans);
}

相關文章