大一下半期数据结构

修理牧场

农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是L​i​​的总和。

但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大于32)。

请编写程序帮助农夫计算将木头锯成N块的最少花费。

输入格式:

输入首先给出正整数N(≤10​4​​),表示要将木头锯成N块。第二行给出N个正整数(≤50),表示每段木块的长度。

输出格式:

输出一个整数,即将木头锯成N块的最少花费。

输入样例:

8
4 5 1 2 1 3 1 1

输出样例:

49
#include<stdio.h>
#include<string.h>
void Insert (int x);
int a[100000]={0},s=0,len;
int main(void) {int n,i,item,t,max,j,x;scanf ("%d",&n);len = n;for (i=1;i<=n;i++) {scanf ("%d",&a[i]);}for (i=1;i<=n;i++) {max = i;for (j=i+1;j<=n;j++) {if (a[j]>a[max]) {max = j;}}item = a[max];a[max] = a[i];a[i] = item;}while (1) {if (len==1)  break;x = a[len]+a[len-1];a[len]=0;len--;s = s+x;Insert (x);}printf ("%d",s);return 0;
}
void Insert (int x) {int i,j;for (i=1;;i++) {if (x>=a[i])   break;}for (j=len;j>=i+1;j--){a[j] = a[j-1];}a[i] = x;
}

7-2 修理牧场 (25 分)相关推荐

  1. 7-29 修理牧场 (25 分)

    7-29 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L ​i ​​ 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...

  2. 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)

    7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的.能锯成N块的 ...

  3. 7-218 修理牧场 (25 分)

    7-218 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li​个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li​的总和 ...

  4. 7-5 修理牧场 (25 分)

    7-5 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L i个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L i的总和. ...

  5. 7-29 修理牧场 (25分)(PTA实验题)

    7-29 修理牧场 (25分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li ​​ 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li ​​ ...

  6. 数据结构PTA习题:基础实验4-2.7 修理牧场 (25分)

    基础实验4-2.7 修理牧场 (25分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i​​个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...

  7. 【两种方法】基础实验4-2.7 修理牧场 (25 分)

    立志用最少的代码做最高效的表达 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L​i个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li的总和. 但 ...

  8. python 7-33 修理牧场 (25 分) PTA

    农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li​个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li​的总和. 但是农夫自己没有锯子,请人锯木的 ...

  9. 7-7 修理牧场 (25分)嗯嗯

    农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li​​ 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li​​ 的总和. 但是农夫自己没有锯子,请 ...

最新文章

  1. 【java】兴唐第三十节课之零三知识点总结
  2. 1578: [Usaco2009 Feb]Stock Market 股票市场
  3. shell script
  4. 编程之美2.12 快速寻找满足条件的两个数
  5. 揭穿骗子阴谋,学会保护自己
  6. Armv8-A 架构概述
  7. PHP 5.3以上版本新增的一些方法
  8. sql活动监视器 死锁_监视SQL Server死锁–简单方法
  9. avascript 运动中Offset的bug解决方案
  10. 设计模式--迭代器模式(C++实现)
  11. 【渝粤题库】陕西师范大学163212旅游地理学 作业(专升本)
  12. 游戏帧数对比测试监控软件,8款游戏帧数对比实测 5800X多数超越11900K
  13. 全球及中国网络教育行业商业模式与运行前景分析报告2022版
  14. java程序猿面试问缺点怎么回答_面试程序员被问“你的缺点是什么”,我该怎么回答?...
  15. kdj指标计算程序代码
  16. 基于springboot电商生鲜购物商城平台设计与实现(含源码+数据库文件)
  17. 小知识·PD充电协议
  18. Helm-chart学习-简单介绍与使用
  19. python如何手动编写开根号的算法_手动开根号方法
  20. AVRWARE++开发笔记8:Atmel Studio去除拼写检查

热门文章

  1. MongoDB聚合(二)
  2. 程序员应该具备哪些素质
  3. [Step By Step]SAP HANA PAL多项式回归预测分析Polynomial Regression编程实例FORECASTWITHPOLYNOMIALR(预测)...
  4. Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像)
  5. 有商在线进销存成功案例
  6. TCP连接发送窗口问题思考
  7. 关于DMA的两个小知识点
  8. latex 图片和标题一起旋转
  9. 【尚未完成,不建议参考】马氏距离,汉明距离
  10. latex 错误: BibTeX: empty journal in Lv2021