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 ...
随机推荐
- 刘汝佳 算法竞赛-入门经典 第二部分 算法篇 第五章 1(String)
第一题:401 - Palindromes UVA : http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8 ...
- Java IO(三)
File File类的常见方法: 1.创建. boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false.和输出流不一样,输出流对象一建立就创建文 ...
- C# Socket 入门1(转)
1. 服务端程序 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using Syst ...
- React事件属性
一.简介 二.滚动例子,滚动改变颜色 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta c ...
- Android APP安全评估工具 Drozer - 安装介绍
一.Drozedr安装 注意事项:安装需要 JavaRuntime Environment (JRE) or Java Development Kit (JDK)环境, 没有安装的请先安装java环境 ...
- SSIS ->> Error Handling
Event Handler Each task and container raises events as it runs, such as an OnError event, among seve ...
- USACO Section 3.1: Agri-Net
minimal spanning tree的经典题 /* ID: yingzho1 LANG: C++ TASK: agrinet */ #include <iostream> #incl ...
- asp.net收藏和设为首页的代码
1:设为首页 <a href="javascript:void(0);" id="setHomePage" onclick="this.styl ...
- dojo 总结
对以前项目中用到的dojo框架进行一个框架式的总结,以备参考学习. 主要组成... 1 开发注意... 3 Dojo代码约定... 3 Dojo形式的脚本库... 4 Dojo Build. 4 Do ...
- ZOJ Problem Set - 3861 Valid Pattern Lock(dfs)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3861 这道题当时没做出来,后来经过队友提醒才做出来. 3*3的九宫格,给你 ...