POJ_3627_贪心

Posted 冷暖知不知

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ_3627_贪心相关的知识,希望对你有一定的参考价值。

题目描述:

  给你N个数和一个总和,要求求出最少个数的数相加大于等于这个总和。

思路:

  很简单的贪心,先排序,从大到小加一次,比较一次,直到符合条件。

  我用了优先队列,运行时间好像多了一倍= =

 

#include<cstdio>
#include<iostream>
#include<queue>
using namespace std;

int main()
{
    priority_queue<int> a;
    int n,b;
    cin >> n >> b;
    while(n--)
    {
        int temp;
        cin >> temp;
        a.push(temp);
    }
    int sum = 0,num = 0;
    while(sum < b)
    {
        sum += a.top();
        a.pop();
        num++;
    }
    cout << num << endl;
}

 

以上是关于POJ_3627_贪心的主要内容,如果未能解决你的问题,请参考以下文章

POJ 2260(模拟&贪心_B题)解题报告

POJ_3663_贪心

POJ_2376_Cleaning Shifts贪心区间覆盖

POJ_1042_贪心

poj_1323 Game Prediction 贪心

poj_2393 Yogurt factory 贪心