//思路:这题思路似乎很简单,每次取出最小的两个堆合并,
//但是由于数据太大,不能采取每次进行排序的方式,所以
//想到用优先队列,以数据小的优先级更高为标准,但是
//优先队列中的数据默认情况下是由大到小弹出的,所以多一步
//操作,具体如下:
#include<cstdio>
#include<queue>
using namespace std;
#define LL long long struct node{
long long x;
friend bool operator < (node a, node b){
return a.x < b.x; //默认情况下从大到下弹出。
}
}; priority_queue<LL,vector<LL>,greater<LL> > q; //从小到大弹出。
//你现在觉得太复杂的话,记住就行了。有兴趣自己查资料。对了,
//注意最后两个>之间是有个空格的,不然会编译错误。 int main()
{
int n;
long long x, sum, tmp;
while(~scanf("%d", &n))
{
while(!q.empty()) q.pop(); //一般加上这步比较保险,虽然这题不加也是对的。
while(n--)
{
scanf("%I64d", &x);
q.push(x);
}
if(n == )
{
printf("%I64d", q.top()); //如果只有一个数,直接弹出,输出即可。
continue;
}
sum = ;
while()
{
tmp = ;
tmp += q.top(), q.pop(); //弹出最小的两个。
tmp += q.top(), q.pop();
sum += tmp;
if(q.empty()) break; //如果是空队列,则跳出。
q.push(tmp); //将相加之后的结果压入队列中。
}
printf("%I64d\n", sum);
}
return ;
}

swun 1612 合并果子的更多相关文章

  1. 【noip 2004】 合并果子

    noip2016结束后的第一份代码--优先队列的练习 合并果子 原题在这里 #include <iostream> #include <queue> #include < ...

  2. 合并果子 2004年NOIP全国联赛普及组

    时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆 ...

  3. NOIP2004合并果子

    题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可 ...

  4. codevs 1063 合并果子//优先队列

    1063 合并果子 2004年NOIP全国联赛普及组  时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石    题目描述 Description 在一个果园里,多多已经将所有的果 ...

  5. [KOJ6024]合并果子·改(强化版)

    [COJ6024]合并果子·改(强化版) 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多把这些果子堆排成一排,然后所有的果子合成一堆.    每一次合并 ...

  6. [KOJ6023]合并果子·改

    [COJ6023]合并果子·改 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多把这些果子堆排成一排,然后所有的果子合成一堆.    每一次合并,多多可以 ...

  7. [KOJ0574NOIP200406合并果子]

    [COJ0574NOIP200406合并果子] 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆.    每一次合并,多多可以把两 ...

  8. NOIP提高组2004 合并果子题解

    NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...

  9. 【NOIP合并果子】uva 10954 add all【贪心】——yhx

    Yup!! The problem name reects your task; just add a set of numbers. But you may feel yourselvesconde ...

随机推荐

  1. Activity学习(四)——简单切换

    理论学习Activity之后,我们就来具体的实战,Activity之间相互切换依靠的是“ 意图 ”(Intent),这个 Intent 包含了要跳转到的Activity的一些信息,因为Activity ...

  2. openvswitch 修改dpid(datapath id)

    版本: $ sudo ovs-vsctl -Vovs-vsctl (Open vSwitch) 2.0.2Compiled May 13 2015 18:49:53 $ sudo ovs-vsctl ...

  3. 545D. Queue

    http://codeforces.com/problemset/problem/545/D 题意:n个数的服务请求数组,求在其服务时间内,最大的可满足服务的请求数量 首先对服务请求数组按照从小到大排 ...

  4. python FTP上传和下载文件

    1. 连接FTP server import ftplib ftp = ftplib.FTP(ftpserver, user, passwd) 等同于 import ftplib ftp = ftpl ...

  5. session原理总结

    session原理总结 session多服务器共享的方案梳理 session原理 session的工作原理 客户端禁用cookie时session解决方案[转]

  6. IOS 视频分解图片、图片合成视频

    在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析. (1)视频分解图片 这里视频分解图片使用的是AVAssetI ...

  7. iOS开发--基于AFNetWorking3.0的图片缓存分析

    图片在APP中占有重要的角色,对图片做好缓存是重要的一项工作.[TOC] 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.C ...

  8. Java-对象数组排序

    1.对对象数组排序:对象要提供一个compare方法比较对象的大小 2.代码 package Test; public class TestObjectArray { public static vo ...

  9. My SQL InnoDB 1217 - Cannot delete or update a parent row:aforeign key constraint fals

    InnoDB 允许有外键  MyISAM 不允许有外键 InnoDB修改成MyISAM 证明有外键 一张表如果有其他表的外键关联的是它  它也不能是MyISAM 来自为知笔记(Wiz)

  10. sublime3 乱码问题

    解决方法: 一.安装Package Control 二.按Ctrl+Shift+P打开命令行,输入Install Package,回车,然后继续输入ConvertToUTF8,回车  (把GB2312 ...