当前位置: 首页 > wzjs >正文

创口贴设计网站官网网络营销十大成功案例

创口贴设计网站官网,网络营销十大成功案例,市政府网站开发,虚拟主机网站建设为了使消耗的体力最小,每次都应该选择当前重量最小的两堆果子进行合并。可以使用优先队列(小根堆)来实现这个过程,优先队列可以自动维护元素的顺序,每次取出堆顶的两个元素(即最小的两个元素)进…

在这里插入图片描述

为了使消耗的体力最小,每次都应该选择当前重量最小的两堆果子进行合并。可以使用优先队列(小根堆)来实现这个过程,优先队列可以自动维护元素的顺序,每次取出堆顶的两个元素(即最小的两个元素)进行合并,然后将合并后的结果重新插入堆中,重复这个过程直到堆中只剩下一个元素。

【算法思路】

  1. 优先队列的定义:使用 priority_queue<int, vector<int>, greater<int>> pq; 定义一个小根堆,这样每次从堆中取出的元素都是当前最小的元素。
  2. 读入数据:通过循环读入每堆果子的重量,并将其加入优先队列。
  3. 合并过程:当优先队列中的元素数量大于 1 时,取出堆顶的两个元素进行合并,计算合并的消耗并累加到 totalCost 中,然后将合并后的结果重新插入优先队列。
  4. 输出结果:当优先队列中只剩下一个元素时,合并过程结束,输出 totalCost,即最小的体力消耗值。

【代码示例】

#include<iostream>
#include<vector>
#include<queue>
using namespace std;int main(){int n;cin>>n;//定义小根堆 priority_queue<int,vector<int>,greater<int>> pq;//读入每堆果子的重量并加入优先队列 int i;for(i=0; i<n; ++i){int weight;cin>>weight;pq.push(weight);}int totalCost = 0;//当堆中元素数量大于1时,继续合并while(pq.size() > 1){//取出最小的两堆果子int a = pq.top();//获取不移除pq.pop();//移除int b = pq.top();pq.pop();//计算合并这两堆果子的消耗int cost = a+b; totalCost += cost;//将合并后的果子堆加入优先队列 pq.push(cost);} //输出最小的体力消耗值 cout<<totalCost<<endl;return 0;
}
http://www.dtcms.com/wzjs/77448.html

相关文章:

  • 亚马逊网站建设进度计划东莞网站营销
  • 做哈尔滨本地门户网站赚钱吗制作网站用什么软件
  • 秦皇岛手机网站建设如何修改百度上面的门店号码
  • 做网站学什么专业关键词网站排名查询
  • 个人备案网站经营百度推广登录网址
  • 公司做网站需要准备什么资料如何制作网页
  • 教你怎么做垃圾网站seo营销的概念
  • 网站运营难做嘛在百度上怎么发布广告
  • .net招聘网站怎么做seo排名策略
  • 在网站里文本链接怎么做湖南优化公司
  • 湘潭商城网站建设定制万网官网入口
  • 昆明做网站建设怎么样网站优化企业排名
  • 酒店如何做网络营销seo课
  • 建设银行官方网站是什么线上推广工作内容
  • 东莞制作手机网站成都移动seo
  • 化妆品购物网站建设目的青岛网站设计微动力
  • 电子商务网站建设文献精准引流推广
  • 怎么做模板网站站长工具seo优化建议
  • 十大设计创意产品网站什么是软文写作
  • 建个企业网站还是开个淘宝店seo网站营销公司哪家好
  • wordpress编辑网站的链接是中文搜索引擎免费登录入口
  • 成都品牌设计公司有哪些东莞关键词优化平台
  • 厦门建设银行网站网推平台有哪些
  • 哈尔滨网站建设服务邯郸seo优化
  • 电商 做图 网站有哪些百度地图在线使用
  • 网站建设与运行的盈利收入河南网站定制
  • 淄博网站建设-至信网络网站优化是做什么的
  • 网站建设的整体流程营销推广的工具有哪些
  • 国学大师网站谁做的品牌广告
  • 网站的分辨率是多少像素网络推广服务合同