1. 程式人生 > >NOIP2004合併果子(提高組T2)————優先佇列STL,貪心

NOIP2004合併果子(提高組T2)————優先佇列STL,貪心

題解:本題主要考查優先佇列STL,貪心。若要體力最小,就要將最小的果合併,合併後的果子再入隊。
程式碼如下:

 #include<iostream>
#include<queue>
using namespace std;
priority_queue<int,vector<int>,greater<int> >b;
int i,a,n,q,p,num=0;
int main()
{
    cin>>n;
    for(i=1;i<=n;i++)
    {
        cin>>a;
        b.push(a);
    }
    while(2<=b.size())
    {
        q=b.top();b.pop();
        p=b.top();b.pop();
        num=num+q+p;
        b.push(q+p);
    }
    cout<<num;
    return 0;
}