首页 > 代码库 > POJ_3627_贪心

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_贪心