P1090 [NOIP 2004 提高组] 合并果子 来源:洛谷 ★ 1300 贪心 本题活力0.00同题已计基础活力;未识别到额外心得,不代表没有学习算法如山行则将至 查看原题郭一鸣 的主页 题目详情思考与重做代码相关标签 题目描述将果子合并成一堆,使总消耗体力最少。 思考与重做 郭一鸣的同题记录 · 2 条 郭一鸣 · 2026-08-30本次记录最后更新 2026.8.30完成结果:未记录WA:没有判断 p 是否已经超过 n 此前的尝试郭一鸣 · 2026-08-16完成结果:未记录展开当时的复盘WA:没有判断 p 是否已经超过 n 队友同题 · 1 人1 条记录廖夏 · 2026-08-21完成结果:未记录本题虽然是套用的贪心经典模型 哈夫曼编码 ,但是实际上没有那么难,只是考虑了一种实现方式——双队列,之后我们会学习相关的优先队列与堆。 代码复制代码AC代码: #include<iostream> #include<algorithm> using namespace std; int a[10010],b[10010]; int main() { int n;cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+n+1); int p=1,q=1,posi=0; int ans=0; for(int i=1;i<n;i++) { int x,y; if(p<=n&&(q>posi||a[p]<b[q])){ x=a[p]; p++; } else{ x=b[q]; q++; } if(p<=n&&(q>posi||a[p]<b[q])){ y=a[p]; p++; } else{ y=b[q]; q++; } posi++; b[posi]=x+y; ans+=b[posi]; } cout<<ans<<endl; return 0; }