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、锯木棒相关推荐

  1. 中国矿业大学算法概论作业一 D、沙子的质量

    D.沙子的质量 题目描述 设有N堆沙子排成一排,其编号为1,2,3,-,N(N< =300).每堆沙子有一定的数量,可以用一个整数来描述,现在要将N堆沙子合并成为一堆,每次只能合并相邻的两堆,合 ...

  2. 中国矿业大学算法概论作业二 D、汽车费用

    D.汽车费用 题目描述 一个特别的单行街道在每公里处有一个汽车站.顾客根据他们乘坐汽车的公里使来付费.例如下表就是一个费用的单子.没有一辆车子行驶超过10公里,一个顾客打算行驶n公里(1<=n& ...

  3. 中国矿业大学算法概论作业二 F、法师康的工人

    F.法师康的工人 题目描述 三个法师康的工人每天早上6点到工厂开始到三条产品生产线上组装桔子手机.第一个工人在200时刻开始(从6点开始计时,以秒作为单位)在生产线上开始生产,一直到1000时刻.第二 ...

  4. 中国矿业大学-算法概论-作业1

    问题 A: algorithm-锯木棒 题目描述 xiaok大佬最近再雇佣工人给他掰木棒.把一根长为L的木棒锯成两段,他需要支付给工人L元钱.xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段 ...

  5. 中国矿业大学算法导论作业

    中国矿业大学算法导论作业 文章目录 中国矿业大学算法导论作业 作业一 A: algorithm-锯木棒 B: algorithm-最长公共子序列 C: algorithm-矩阵连乘 D: algori ...

  6. 算法概论-作业1-席景科老师 问题 A: algorithm-锯木棒

    问题 A: algorithm-锯木棒 题目: xiaok大佬最近再雇佣工人给他掰木棒.把一根长为L的木棒锯成两段,他需要支付给工人L元钱.xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段, ...

  7. 算法导论作业 问题 A: algorithm-锯木棒

    题目描述 xiaok大佬最近再雇佣工人给他掰木棒.把一根长为L的木棒锯成两段,他需要支付给工人L元钱.xiaok大佬一开始只有长为L的一根木棒,他想把它锯成n段,每段长度分别为L1,L2,-,Ln,问 ...

  8. 中国矿业大学计算机学院刘茗,中国矿业大学(徐州)计算机科学与技术学院研究生导师:刘兵...

    个人简介 刘兵,男,1981年8月生,副教授,博士,中国科学院电子学所博士后,美国北卡罗来纳大学教堂山分校访问学者.研究方向:机器学习,模式识别,数据挖掘.主持国家自然科学基金项目<面向高维数据 ...

  9. 智能车竞赛技术报告 | 智能车视觉 - 中国矿业大学 - 会飞的车

    简 介: 本文以第十六届全国大学生智能车竞赛为背景,介绍了 AI视觉四轮智能车系统的软硬件结构和开发流程.采用大赛组委会指定的 C型车模,以恩智浦 32位微控制器 MIMXRT1064最小系统板作为核 ...

最新文章

  1. iOS多设备分辨率适配
  2. OpenCV SFM模块安装
  3. Maven(一)Maven及插件安装
  4. (轉載) 大學就學貸款 可分12年還 (News)
  5. oracle ebs 基于host(主机文件)并发程序的开发,Oracle EBS 基于Host(主机文件)并发程序的开发...
  6. webpack设置应用缓存_如何使用Webpack在Rails应用程序中设置TinyMCE
  7. openerp经典收藏 对象定义详解(转载)
  8. 巧用枚举CommandBehavior关闭SqlDataReader联接数据库时的conn.open状态
  9. 40-400-035-运维-优化-pt-variable-advisor优化工具
  10. python如何用色度表示数值大小_python入门004数字(例程界面很清晰大小也合适)
  11. Git版本恢复命令reset(转载)
  12. Ditto —— windows 剪贴板增强小工具(复制粘贴多条记录)
  13. utorrent无传入连接_uTorrent常见问题解答中文版
  14. TP6.0 一对一模型关联 hasOne
  15. MWC - 飞控套件CRIUS MWC MultiWii SE v2.6组装
  16. 实践练习6:查看 OceanBase 执行计划
  17. 【微信开发6】专属推广二维码 java+SpringBoot
  18. Rigify:面向初学者解决Rigify各种错误的入门级通用解决办法
  19. 写出语句的四元式序列
  20. 比较iOS和Android的优缺点,第一次安卓机优缺点总结(对比iOS系统)

热门文章

  1. 华益血糖信息管理系统服务器,华益血糖信息化管理系统
  2. iOS日常开发之常用单词、名词注释
  3. java怎样将乘法优化成位移乘法_Java性能优化:程序优化
  4. java表白 520
  5. OpenCV.反阈值二值化
  6. ES 创建索引设置(setting)基础
  7. 手机里微信更换了头像电脑没同步
  8. 芯片测试算法及时间复杂度分析
  9. 字节跳动自研线上引流回放系统的架构演进
  10. runauto.. 病毒斗争记