博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【贪心】合并果子
阅读量:4930 次
发布时间:2019-06-11

本文共 878 字,大约阅读时间需要 2 分钟。

这是一道非常经常的贪心问题。

题目所遵循的原则就是 把最小的两个元素合并的话 体力消耗最少(抱歉 我不会证明 )

之后的话用优先队列读入所有数(得重载运算符从小到大排),之后每次把队首的元素取出来和后一个元素合并。合并完后再扔进队列,循环n-1次。直到只剩下一堆时

#include
#include
#include
#include
using namespace std;priority_queue
,greater
>Q; //创建优先对列 greater
就是让该队列自动从小(队头)到大(队尾)排序,若改作less
则是从大(队头)到小(队尾)。int N,x,ans=0,tmp=0;int main(){ cin>>N; for(int i=1;i<=N;i++) { cin>>x; Q.push(x); //将果子数入队 它将自动排序 } for(int i=1;i<=N-1;i++) { tmp=Q.top(); //读取当前最小的一堆 Q.pop(); tmp=tmp+Q.top(); //读取当前第二小的一堆与最小的一堆合并 Q.pop(); Q.push(tmp); //将刚刚合并的两堆重新入队,让它再次排序 ans=ans+tmp; //统计所用的能量 } cout<
合并果子

 

转载于:https://www.cnblogs.com/OIerLYF/p/6056657.html

你可能感兴趣的文章
SSH Key的生成和使用(for git)
查看>>
html5--6-52 动画效果-过渡
查看>>
调查表与调查结果分析
查看>>
Windows系统下安装MySQL详细教程(命令安装法)
查看>>
PHP实用小程序(六)
查看>>
PDFsharp Samples
查看>>
django-cms 代码研究(八)app hooks
查看>>
peewee Model.get的复杂查询
查看>>
IE浏览器兼容性设置的一些问题
查看>>
SQL Server复制入门(二)----复制的几种模式
查看>>
javascript 简单认识
查看>>
tomcat 系统架构与设计模式 第二部分 设计模式 转
查看>>
scanf中的%[^\n]%*c格式
查看>>
启动Eclipse报Initializing Java Tooling错误解决方法
查看>>
用jquery来实现类似“网易新闻”横向标题滑动的移动端页面
查看>>
(原)基于物品的协同过滤ItemCF的mapreduce实现
查看>>
CSS可以和不可以继承的属性
查看>>
eclipse每次当我按ctrl+鼠标点击代码,自动关闭,产生原因及解决办法!!
查看>>
hbase
查看>>
用PHP将Unicode 转化为UTF-8
查看>>