首页 > 代码库 > PID25 / 合并果子 ☆
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; }
PID25 / 合并果子 ☆
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。