[NOIP2004]合并果子
Posted cq.tiancx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[NOIP2004]合并果子相关的知识,希望对你有一定的参考价值。
题目: [NOIP2004]合并果子 ,哈哈,我们今天来看一道比较简单的题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧:
考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面!
题目传送门: [NOIP2004]合并果子
思路
:
我们用两个队列,一个队列装已经排好序的元素,一个队列装合并后的元素,然后我们取出队头小的一个并出队,然后我们
再
取出队头小的一个并出队,然后把取出的两个元素相加,加入到合并元素的队列中去!具体的我们直接看代码!
我们来看看成功AC的代码吧:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[10010];
queue<int> q1,q2;//用两个队列,方便理解
int main()
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
sort(a+1,a+1+n);
for(int i=1;i<=n;i++) q1.push(a[i]);
int ans=0;
for(int i=1;i<n;i++)
int x[3];
for(int j=1;j<=2;j++)//找到队头小的
if(q2.empty()||!q1.empty()&&q1.front()<q2.front())
x[j]=q1.front(); q1.pop();
else
x[j]=q2.front(); q2.pop();
ans+=x[1]+x[2];
q2.push(x[1]+x[2]);
cout<<ans;
return 0;
谢谢你的阅读
,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!
以上是关于[NOIP2004]合并果子的主要内容,如果未能解决你的问题,请参考以下文章