贪心:合并果子

简介: 分析:这道题不是前缀和,记好!!!用到了优先队列,默认是从大到小,改一下就变成了从小到大

76765a68e323025b84c08f5dec1e91a.png


分析:这道题不是前缀和,记好!!!用到了优先队列,默认是从大到小,改一下就变成了从小到大

源码:

include <bits/stdc++.h>//优先队列

using namespace std;

typedef long long ll;

priority_queue<ll,vector,greater >qu;

ll arr[100005];

int main(void)

{

int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>arr[i];
    qu.push(arr[i]);
}
long long sum=0;
while(qu.size()>1)
{
int lx=qu.top();
    qu.pop();
int ly=qu.top();
    qu.pop();
    sum=sum+lx+ly;
    qu.push(lx+ly);
}
cout<<sum<<endl;
return 0;

}

目录
相关文章
|
9月前
|
人工智能
【动态规划刷题 11】等差数列划分&& 最长湍流子数组
【动态规划刷题 11】等差数列划分&& 最长湍流子数组
|
7天前
|
算法 C++
【洛谷 P1090】[NOIP2004 提高组] 合并果子(贪心算法+哈夫曼编码+优先队列)
该编程题目要求设计算法,将不同种类的果子合并成一堆,使得消耗的体力最小。给定果子种类数`n`(1至10000)和每种果子的数量,需输出合并的最小体力值。使用优先队列(最小堆),每次取出两个数量最少的果子堆合并,并更新总体力消耗。样例输入为3种果子(1, 2, 9),输出最小体力耗费为15。提供的AC代码采用C++实现,通过优先队列优化合并顺序。
8 0
|
1月前
|
JavaScript
线性dp之石子合并
线性dp之石子合并
|
11月前
|
人工智能 算法 C++
洛谷 P1090 合并果子(贪心)
洛谷 P1090 合并果子(贪心)
106 0
|
9月前
[NOIP2004]合并果子
[NOIP2004]合并果子
|
11月前
|
人工智能
1369:合并果子(fruit)
1369:合并果子(fruit)
|
11月前
1274:【例9.18】合并石子
1274:【例9.18】合并石子
|
人工智能
石子合并-区间dp
石子合并-区间dp
58 0
区间DP:合并石子
区间DP:合并石子
45 0