zoukankan      html  css  js  c++  java
  • PID25 / 合并果子 ☆

    这里用到了STL里面的priority_queue,我也不是很精通基本上属于现学现卖阶段,http://www.cnblogs.com/flyoung2008/articles/2136485.html,这里挂一个我学习的地址

    相当于一个堆,这里自定义了最小堆,这样之后每次取堆顶的两个元素就好,相加之后再插入堆

    #include<iostream>
    #include <queue>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int fruit[10000+10];
    struct node{
    
      int  m;
      bool operator<(const node &a) const
      {
          return a.m<m;
      }
    
    };
    int main()
    {
        int n;
    
        while(cin>>n)
        {
            priority_queue<node>Q;
            node p;
            for(int i=0;i<n;i++)
            {
                cin>>p.m;
                Q.push(p);
            }
            int sum=0;
            node fir,sec;
            node temp;
            for(int i=0;i<n-1;i++)
            {
                fir=Q.top();
                Q.pop();
                sec=Q.top();
                Q.pop();
                sum+=fir.m+sec.m;
                temp.m=fir.m+sec.m;
                Q.push(temp);
            }
            while(!Q.empty())
            {
                Q.pop();
            }
            cout<<sum<<endl;
        }
        return 0;
    }
  • 相关阅读:
    线性筛法(欧拉筛法)求素数
    07 day 2
    07 DAY 1
    二模 06day2
    刷水题记(2)
    The Perfect Stall (incomplete)
    离散化的应用:矩形覆盖问题
    刷水题记(1)
    发个题目坑 二模03day1
    hdu 5996 dingyeye loves stone(博弈)
  • 原文地址:https://www.cnblogs.com/lulichuan/p/6480765.html
Copyright © 2011-2022 走看看