中国矿业大学算法概论作业一A、锯木棒
A、algorithm-锯木棒
题目描述
xiaok大佬最近再雇佣工人给他掰木棒。把一根长为L的木棒锯成两段,他需要支付给工人L元钱。xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段,每段长度分别为L1,L2,…,Ln,问xiaok大佬最少要付给工人多少钱
输入
第一行两个整数n,L(1<n<103,n<L<109)
第二行n个整数L1,L2,…,Ln(0<Li<L,且保证L1+L2+…+Ln=L)
输出
输出一个整数,表示最小花费
样例输入
3 21
8 5 8
样例输出
34
题解一(数组)
#include <bits/stdc++.h>
using namespace std;
int main(){int n, L, sum=0, tmp=0;cin>>n>>L; int *m = NULL;m = new int[n];for(int i=0;i<n;i++){cin>>m[i];}sort(m,m+n);if(n>2){for(int i=0; i<n-1;i++){sum = sum + m[i] + m[i+1];m[i+1] = m[i] + m[i+1] ;m[i] = 0;sort(m+i+1, m+n);}}else sum=L;delete[] m;cout<<sum;return 0;
}
题解二(优先队列)
#include<bits/stdc++.h>
using namespace std;
struct cmp
{bool operator()(int& a,int& b){return a>b;}
};
int main()
{priority_queue<int,vector<int>,cmp> queue;int n,L,tmp,sum=0, a, b;cin>>n>>L;for(int i=0;i<n;i++){cin>>tmp;queue.push(tmp);}while(queue.size()>1){a=queue.top();queue.pop();b=queue.top();queue.pop();sum=sum+a+b;queue.push(a+b);}cout<<sum<<endl;
}
优先队列
priority_queue优先队列
作为队列的一个延伸,优先队列同样是一种很有用的数据结构,它包含在头文件< queue >中。
优先队列是一种重要的数据结构,它是由二项队列编写而成的,可以以log(n)的效率查找一个队列中最大值或最小值(最大值和最小值是由你选择创建的优先队列的性质决定的),这在很多场合可以派上很大的用处,例如prim算法如果结合优先队列可以产生出很好的效果。
priority_queue的模板生命是带有三个参数的:priority_queue<type,container,function>,
其中,type是数据的类型,container为实现优先队列的底层容器,function为元素间的比较方式,其中container要求必须是数组形式实现的容器,如vector,deque,而不能是
list。在c++标准库中,默认情况下是以vector为容器,以operator<为比较方式,所以在只使用第一个参数时,优先队列默认是一个最大堆,每次输出的堆顶元素是此时堆中的最大元素。
中国矿业大学算法概论作业一A、锯木棒相关推荐
- 中国矿业大学算法概论作业一 D、沙子的质量
D.沙子的质量 题目描述 设有N堆沙子排成一排,其编号为1,2,3,-,N(N< =300).每堆沙子有一定的数量,可以用一个整数来描述,现在要将N堆沙子合并成为一堆,每次只能合并相邻的两堆,合 ...
- 中国矿业大学算法概论作业二 D、汽车费用
D.汽车费用 题目描述 一个特别的单行街道在每公里处有一个汽车站.顾客根据他们乘坐汽车的公里使来付费.例如下表就是一个费用的单子.没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1<=n& ...
- 中国矿业大学算法概论作业二 F、法师康的工人
F.法师康的工人 题目描述 三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机.第一个工人在200时刻开始(从6点开始计时,以秒作为单位)在生产线上开始生产,一直到1000时刻.第二 ...
- 中国矿业大学-算法概论-作业1
问题 A: algorithm-锯木棒 题目描述 xiaok大佬最近再雇佣工人给他掰木棒.把一根长为L的木棒锯成两段,他需要支付给工人L元钱.xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段 ...
- 中国矿业大学算法导论作业
中国矿业大学算法导论作业 文章目录 中国矿业大学算法导论作业 作业一 A: algorithm-锯木棒 B: algorithm-最长公共子序列 C: algorithm-矩阵连乘 D: algori ...
- 算法概论-作业1-席景科老师 问题 A: algorithm-锯木棒
问题 A: algorithm-锯木棒 题目: xiaok大佬最近再雇佣工人给他掰木棒.把一根长为L的木棒锯成两段,他需要支付给工人L元钱.xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段, ...
- 算法导论作业 问题 A: algorithm-锯木棒
题目描述 xiaok大佬最近再雇佣工人给他掰木棒.把一根长为L的木棒锯成两段,他需要支付给工人L元钱.xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段,每段长度分别为L1,L2,-,Ln,问 ...
- 中国矿业大学计算机学院刘茗,中国矿业大学(徐州)计算机科学与技术学院研究生导师:刘兵...
个人简介 刘兵,男,1981年8月生,副教授,博士,中国科学院电子学所博士后,美国北卡罗来纳大学教堂山分校访问学者.研究方向:机器学习,模式识别,数据挖掘.主持国家自然科学基金项目<面向高维数据 ...
- 智能车竞赛技术报告 | 智能车视觉 - 中国矿业大学 - 会飞的车
简 介: 本文以第十六届全国大学生智能车竞赛为背景,介绍了 AI视觉四轮智能车系统的软硬件结构和开发流程.采用大赛组委会指定的 C型车模,以恩智浦 32位微控制器 MIMXRT1064最小系统板作为核 ...
最新文章
- iOS多设备分辨率适配
- OpenCV SFM模块安装
- Maven(一)Maven及插件安装
- (轉載) 大學就學貸款 可分12年還 (News)
- oracle ebs 基于host(主机文件)并发程序的开发,Oracle EBS 基于Host(主机文件)并发程序的开发...
- webpack设置应用缓存_如何使用Webpack在Rails应用程序中设置TinyMCE
- openerp经典收藏 对象定义详解(转载)
- 巧用枚举CommandBehavior关闭SqlDataReader联接数据库时的conn.open状态
- 40-400-035-运维-优化-pt-variable-advisor优化工具
- python如何用色度表示数值大小_python入门004数字(例程界面很清晰大小也合适)
- Git版本恢复命令reset(转载)
- Ditto —— windows 剪贴板增强小工具(复制粘贴多条记录)
- utorrent无传入连接_uTorrent常见问题解答中文版
- TP6.0 一对一模型关联 hasOne
- MWC - 飞控套件CRIUS MWC MultiWii SE v2.6组装
- 实践练习6:查看 OceanBase 执行计划
- 【微信开发6】专属推广二维码 java+SpringBoot
- Rigify:面向初学者解决Rigify各种错误的入门级通用解决办法
- 写出语句的四元式序列
- 比较iOS和Android的优缺点,第一次安卓机优缺点总结(对比iOS系统)