swun 1612 合并果子
//思路:这题思路似乎很简单,每次取出最小的两个堆合并,
//但是由于数据太大,不能采取每次进行排序的方式,所以
//想到用优先队列,以数据小的优先级更高为标准,但是
//优先队列中的数据默认情况下是由大到小弹出的,所以多一步
//操作,具体如下:
#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 合并果子的更多相关文章
- 【noip 2004】 合并果子
noip2016结束后的第一份代码--优先队列的练习 合并果子 原题在这里 #include <iostream> #include <queue> #include < ...
- 合并果子 2004年NOIP全国联赛普及组
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆 ...
- NOIP2004合并果子
题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可 ...
- codevs 1063 合并果子//优先队列
1063 合并果子 2004年NOIP全国联赛普及组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 题目描述 Description 在一个果园里,多多已经将所有的果 ...
- [KOJ6024]合并果子·改(强化版)
[COJ6024]合并果子·改(强化版) 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多把这些果子堆排成一排,然后所有的果子合成一堆. 每一次合并 ...
- [KOJ6023]合并果子·改
[COJ6023]合并果子·改 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多把这些果子堆排成一排,然后所有的果子合成一堆. 每一次合并,多多可以 ...
- [KOJ0574NOIP200406合并果子]
[COJ0574NOIP200406合并果子] 试题描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两 ...
- NOIP提高组2004 合并果子题解
NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...
- 【NOIP合并果子】uva 10954 add all【贪心】——yhx
Yup!! The problem name reects your task; just add a set of numbers. But you may feel yourselvesconde ...
随机推荐
- Activity学习(四)——简单切换
理论学习Activity之后,我们就来具体的实战,Activity之间相互切换依靠的是“ 意图 ”(Intent),这个 Intent 包含了要跳转到的Activity的一些信息,因为Activity ...
- openvswitch 修改dpid(datapath id)
版本: $ sudo ovs-vsctl -Vovs-vsctl (Open vSwitch) 2.0.2Compiled May 13 2015 18:49:53 $ sudo ovs-vsctl ...
- 545D. Queue
http://codeforces.com/problemset/problem/545/D 题意:n个数的服务请求数组,求在其服务时间内,最大的可满足服务的请求数量 首先对服务请求数组按照从小到大排 ...
- python FTP上传和下载文件
1. 连接FTP server import ftplib ftp = ftplib.FTP(ftpserver, user, passwd) 等同于 import ftplib ftp = ftpl ...
- session原理总结
session原理总结 session多服务器共享的方案梳理 session原理 session的工作原理 客户端禁用cookie时session解决方案[转]
- IOS 视频分解图片、图片合成视频
在IOS视频处理中,视频分解图片和图片合成视频是IOS视频处理中经常遇到的问题,这篇博客就这两个部分对IOS视频图像的相互转换做一下分析. (1)视频分解图片 这里视频分解图片使用的是AVAssetI ...
- iOS开发--基于AFNetWorking3.0的图片缓存分析
图片在APP中占有重要的角色,对图片做好缓存是重要的一项工作.[TOC] 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.C ...
- Java-对象数组排序
1.对对象数组排序:对象要提供一个compare方法比较对象的大小 2.代码 package Test; public class TestObjectArray { public static vo ...
- My SQL InnoDB 1217 - Cannot delete or update a parent row:aforeign key constraint fals
InnoDB 允许有外键 MyISAM 不允许有外键 InnoDB修改成MyISAM 证明有外键 一张表如果有其他表的外键关联的是它 它也不能是MyISAM 来自为知笔记(Wiz)
- sublime3 乱码问题
解决方法: 一.安装Package Control 二.按Ctrl+Shift+P打开命令行,输入Install Package,回车,然后继续输入ConvertToUTF8,回车 (把GB2312 ...