当前位置: 代码迷 >> 综合 >> HDOJ 2124 Repair the wall 九度教程第24题 贪心 水~
  详细解决方案

HDOJ 2124 Repair the wall 九度教程第24题 贪心 水~

热度:70   发布时间:2023-12-20 23:25:32.0

题目链接

解题思路:
贪心,每次选择当前最长的木板即可。

AC代码:

//贪心 每次选择最长的木板
#include<iostream>
#include<stdio.h>
#include<queue>
#include<vector>
#include<functional>
using namespace std;priority_queue<int> q;//大顶堆
int main() {
    int l, n;while (scanf("%d%d", &l, &n) != EOF) {
    int len;while (!q.empty())q.pop();for (int i = 1; i <= n; i++) {
    scanf("%d", &len);q.push(len);}int now_len = 0, ans = 0;while (!q.empty() && now_len < l) {
    ans++;now_len += q.top();q.pop();}if (now_len >= l)cout << ans << endl;else cout << "impossible" << endl;}return 0;
}