美文网首页
合并果子问题

合并果子问题

作者: 小幸运Q | 来源:发表于2018-06-23 13:50 被阅读14次

第一时间想到取前两个元素相加然后insert进去再quicksort。结果....


image.png

然后换个堆排序看看:


image.png

不懂为啥会超时,priority_queue理论上使用堆实现的啊....可能是从汇编层面做了优化吧


使用自带排序功能的priority_queue:

#include<iostream>
#include<queue>
#include<cstdio>
using namespace std;
priority_queue<int>q;                 //c++STL库的优先队列,优先队列里面元素从顶部到底部都是从大到小
int main()
{
    int n,i,x,a=0,t;
    cin>>n;
    for(i=0; i<n; i++)
    {
        cin>>x;
        q.push(-x);                  //加上负号保证顶部的两个元素是最小的两个整数
    }
    for(i=1; i<n; i++)
    {
        t=q.top();                  //t存取的是顶部最小的两个数的和,也就是每次移动耗费的体力值
        a-=q.top();                 //a存取的是总的体力值
        q.pop();                    //删除第一个元素
        t+=q.top();
        a-=q.top();
        q.pop();                    //删除第二个元素
        q.push(t);                  //将第一个元素与第二个元素的和加入这个队列中
    }
    cout<<a;
    return 0;
}

相关文章

  • 合并果子问题

    第一时间想到取前两个元素相加然后insert进去再quicksort。结果.... 然后换个堆排序看看: 不懂为啥...

  • 合并果子

    在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了N堆。果园是一个二维平面,第i堆果子的位置为...

  • 哈夫曼树

    哈夫曼树大概有两种考法,一种是合并果子的问题,就是最小或者最大的两两合并问题,另一种则是输出带权路径长度的问题,处...

  • AcWing 148. 合并果子

    AcWing 148. 合并果子 哈夫曼/贪心

  • 信息课总结(一)

    贪心与排序 一、合并果子(洛谷ojP1090) 原题是洛谷的P1090 合并果子思路:要使总共的和最小,则要使单次...

  • 二叉树 | 哈夫曼树

    参考:胡凡,曾磊「算法笔记」,emmmmm算是梳理吧。图片和部分描述均来自此书~ 引:合并果子问题 n堆已知质量的...

  • 2018-12-26

    问题列表 合并两个有序链表 合并K个排序链表 合并区间 插入区间 问题与反馈 总结与收获 多个有序链表的合并,类似...

  • [贪心]合并果子——落谷-P1090

    优先队列   优先队列中元素具有优先级,在删除时删除优先级高的元素。优先队列本质上还是队列,元素增添在队尾,取元素...

  • 前端笔记——CSS常见问题及解决方案

    问题一:外边距合并问题 问题描述:外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的...

  • 小技巧合集之css

    01 修改placeholder样式 02 margin合并/塌陷问题解决方法 具体详见:margin合并/塌陷问题

网友评论

      本文标题:合并果子问题

      本文链接:https://www.haomeiwen.com/subject/fwpryftx.html