PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子
文章目录
- 题目分析
- 题目来源
题目分析
来源: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++题解]贪心、优先队列、合并果子相关推荐
- PAT甲级1037 Magic Coupon:[C++题解]贪心
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 贪心. 两个数列分别从大到小排列.从前往后遍历,如果a数组和b数组前k个数都是正数,就相乘累加到res中: 从后往前遍历,如果a数组 ...
- PAT甲级1138 Postorder Traversal:[C++题解]前序遍历和中序遍历建树
文章目录 题目分析 题目链接 题目分析 做过前面几道题,发现这道题就是一道模板题,递归建树即可. 还是使用笔者熟悉的hash表来找根,进行优化. 请移步至笔者的另一篇文章:PAT甲级1020 Tree ...
- PAT甲级1051 Pop Sequence:[C++题解]模拟栈、判断序列是否是合法的出栈序列
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 题意:将1~N压栈,判断给定序列是否是合法的出栈序列. 对于序列1~N中的每个值i,先将其压入栈.然后对于它就有两种处理方法:要么压 ...
- PAT甲级1085 Perfect Sequence :[C++题解]双指针
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:求满足条件M≤m×pM \leq m\times pM≤m×p的区间[m, M]最长是多少.此处有一性质:当最大值M变大的时候,最小值 ...
- PAT甲级1046 Shortest Distance:[C++题解]前缀和
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 用前缀和快速求出一段的和.注意求两段,取最小值. ac代码 #include<bits/stdc++.h> using ...
- PAT甲级1140 Look-and-say Sequence:[C++题解]统计连续个数
文章目录 题目分析 题目链接 题目分析 来源:acwing 规律是:对于前一项的每个值,输出当前值(该值必须连续)和它的个数. 比如: D下一项是D1,表示D有1个 D1下一项是D111,表示当前值D ...
- PAT甲级1132 Cut Integer:[C++题解]
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:使用string读入,然后stoi转换成int型. ac代码 #include<bits/stdc++.h> using ...
- PAT甲级1109 Group Photo:[C++题解]双指针
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 双指针:从中点分别往两侧移动. AC代码 #include<bits/stdc++.h> using namespace ...
- PAT甲级1129 Recommendation System:[C++题解]统计前k个商品
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 用变量k来计数每次输出前k个,k等于min(k,m),m为系统允许的最大推荐数. 用数组cnt统计每件商品的数量,top数组统计前k ...
最新文章
- Windows服务异常自动关闭
- python简单代码加法-CPython 源码中整数加法的实现
- KubeNode:阿里巴巴云原生 容器基础设施运维实践
- bootstrap File Input 多文件上传插件使用记录(二)删除原文件
- OEL修改字符集失败 -bash: /root: is a directory
- 让“王码五笔输入法”成为你的专用输入法!
- visio指向插图任意位置和任意改变箭头形状
- PS制作gif表情包
- 3dmax:3dmax三维VR渲染设置之高级灯光渲染(经典案例—矩形光源打造灯箱效果)图文教程
- 从C到C++___类继承(五)多重继承
- Linux中的系统语言包及UTF-8、en_US.UTF-8和zh_CN.UTF-8的区别
- 解决fullpage滑动,控制台的报错提示
- sketch中制作蒙版及通道蒙版
- dba+开源工具:轻量级数据库审计日志平台,违规操作无所遁形(附下载)
- WeUI实例(官方)
- 三轮全向底盘:运动学性能分析
- 一个关于Linux Bridge配置的吐嘈
- 痛心,拼多多一程序员在家跳楼自杀!发生了什么?
- matlab 在2k屏幕,如何将4k显示器的分辨率调整为2k,并将2k分辨率用于4k显示器
- 新能源汽车应该何去何从?
热门文章
- Bootstrap Paginator分页插件+ajax
- IE8的parseInt
- javaweb学习总结(四)——Http协议
- hdu 1150 Machine Schedule (经典二分匹配)
- JS Window.Open 打开窗口详解
- 不生成Android Dependencies
- linux7 rpmdb 修复,Linux[CentOS 7]rpmdb open failed错误修复
- vuetify table_vuex 封装设计全局可用的vuetify中的snackbar
- php nfs,NFS(网络文件系统)服务器简单解析
- 【Python】利用 pytesseract 识别图片中的数字