文章目录

  • 题目分析
  • 题目来源

题目分析



来源:acwing

板子题:合并果子合并果子优先队列

分析:贪心策略是: 每次取最短的两条绳子a和b。该两条绳子合并为1条绳子,且长度变为a+b2\frac{a+b}{2}2a+b​。然后再递归选择最短的两条绳子,直到剩余1条为止。
做法:使用优先队列(小根堆!!),从小到大有序。 每次取出a和b,然后再压入a+b2\frac{a+b}{2}2a+b​到优先队列中。

ac代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int a[N];int main(){int n;cin >> n;priority_queue<int,vector<int>,greater<int>> pq; for(int i = 0; i< n; i ++){int x;cin >> x;pq.push(x);}double res = 0;while(pq.size()>1){double a = pq.top();pq.pop();double b = pq.top();pq.pop();pq.push((a+b)/2.0);}cout<< (int)pq.top()<<endl;
}

题目来源

PAT甲级1125 Chain the Ropes
https://www.acwing.com/problem/content/description/1620/

PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子相关推荐

  1. PAT甲级1037 Magic Coupon:[C++题解]贪心

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 贪心. 两个数列分别从大到小排列.从前往后遍历,如果a数组和b数组前k个数都是正数,就相乘累加到res中: 从后往前遍历,如果a数组 ...

  2. PAT甲级1138 Postorder Traversal:[C++题解]前序遍历和中序遍历建树

    文章目录 题目分析 题目链接 题目分析 做过前面几道题,发现这道题就是一道模板题,递归建树即可. 还是使用笔者熟悉的hash表来找根,进行优化. 请移步至笔者的另一篇文章:PAT甲级1020 Tree ...

  3. PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 题意:将1~N压栈,判断给定序列是否是合法的出栈序列. 对于序列1~N中的每个值i,先将其压入栈.然后对于它就有两种处理方法:要么压 ...

  4. PAT甲级1085 Perfect Sequence :[C++题解]双指针

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:求满足条件M≤m×pM \leq m\times pM≤m×p的区间[m, M]最长是多少.此处有一性质:当最大值M变大的时候,最小值 ...

  5. PAT甲级1046 Shortest Distance:[C++题解]前缀和

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 用前缀和快速求出一段的和.注意求两段,取最小值. ac代码 #include<bits/stdc++.h> using ...

  6. PAT甲级1140 Look-and-say Sequence:[C++题解]统计连续个数

    文章目录 题目分析 题目链接 题目分析 来源:acwing 规律是:对于前一项的每个值,输出当前值(该值必须连续)和它的个数. 比如: D下一项是D1,表示D有1个 D1下一项是D111,表示当前值D ...

  7. PAT甲级1132 Cut Integer:[C++题解]

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:使用string读入,然后stoi转换成int型. ac代码 #include<bits/stdc++.h> using ...

  8. PAT甲级1109 Group Photo:[C++题解]双指针

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 双指针:从中点分别往两侧移动. AC代码 #include<bits/stdc++.h> using namespace ...

  9. PAT甲级1129 Recommendation System:[C++题解]统计前k个商品

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 用变量k来计数每次输出前k个,k等于min(k,m),m为系统允许的最大推荐数. 用数组cnt统计每件商品的数量,top数组统计前k ...

最新文章

  1. Windows服务异常自动关闭
  2. python简单代码加法-CPython 源码中整数加法的实现
  3. KubeNode:阿里巴巴云原生 容器基础设施运维实践
  4. bootstrap File Input 多文件上传插件使用记录(二)删除原文件
  5. OEL修改字符集失败 -bash: /root: is a directory
  6. 让“王码五笔输入法”成为你的专用输入法!
  7. visio指向插图任意位置和任意改变箭头形状
  8. PS制作gif表情包
  9. 3dmax:3dmax三维VR渲染设置之高级灯光渲染(经典案例—矩形光源打造灯箱效果)图文教程
  10. 从C到C++___类继承(五)多重继承
  11. Linux中的系统语言包及UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别
  12. 解决fullpage滑动,控制台的报错提示
  13. sketch中制作蒙版及通道蒙版
  14. dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)
  15. WeUI实例(官方)
  16. 三轮全向底盘:运动学性能分析
  17. 一个关于Linux Bridge配置的吐嘈
  18. 痛心,拼多多一程序员在家跳楼自杀!发生了什么?
  19. matlab 在2k屏幕,如何将4k显示器的分辨率调整为2k,并将2k分辨率用于4k显示器
  20. 新能源汽车应该何去何从?

热门文章

  1. Bootstrap Paginator分页插件+ajax
  2. IE8的parseInt
  3. javaweb学习总结(四)——Http协议
  4. hdu 1150 Machine Schedule (经典二分匹配)
  5. JS Window.Open 打开窗口详解
  6. 不生成Android Dependencies
  7. linux7 rpmdb 修复,Linux[CentOS 7]rpmdb open failed错误修复
  8. vuetify table_vuex 封装设计全局可用的vuetify中的snackbar
  9. php nfs,NFS(网络文件系统)服务器简单解析
  10. 【Python】利用 pytesseract 识别图片中的数字