7-2 修理牧场 (25 分)
大一下半期数据结构
修理牧场
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。
但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大于32)。
请编写程序帮助农夫计算将木头锯成N块的最少花费。
输入格式:
输入首先给出正整数N(≤104),表示要将木头锯成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 分)相关推荐
- 7-29 修理牧场 (25 分)
7-29 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L i 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...
- 7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程)
7-1 修理牧场 (25 分)(最详解)(最容易理解的解题过程) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的.能锯成N块的 ...
- 7-218 修理牧场 (25 分)
7-218 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li的总和 ...
- 7-5 修理牧场 (25 分)
7-5 修理牧场 (25 分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数L i个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L i的总和. ...
- 7-29 修理牧场 (25分)(PTA实验题)
7-29 修理牧场 (25分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li ...
- 数据结构PTA习题:基础实验4-2.7 修理牧场 (25分)
基础实验4-2.7 修理牧场 (25分) 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是L ...
- 【两种方法】基础实验4-2.7 修理牧场 (25 分)
立志用最少的代码做最高效的表达 农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li的总和. 但 ...
- python 7-33 修理牧场 (25 分) PTA
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li的总和. 但是农夫自己没有锯子,请人锯木的 ...
- 7-7 修理牧场 (25分)嗯嗯
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li 个长度单位,于是他购买了一条很长的.能锯成N块的木头,即该木头的长度是Li 的总和. 但是农夫自己没有锯子,请 ...
最新文章
- 【java】兴唐第三十节课之零三知识点总结
- 1578: [Usaco2009 Feb]Stock Market 股票市场
- shell script
- 编程之美2.12 快速寻找满足条件的两个数
- 揭穿骗子阴谋,学会保护自己
- Armv8-A 架构概述
- PHP 5.3以上版本新增的一些方法
- sql活动监视器 死锁_监视SQL Server死锁–简单方法
- avascript 运动中Offset的bug解决方案
- 设计模式--迭代器模式(C++实现)
- 【渝粤题库】陕西师范大学163212旅游地理学 作业(专升本)
- 游戏帧数对比测试监控软件,8款游戏帧数对比实测 5800X多数超越11900K
- 全球及中国网络教育行业商业模式与运行前景分析报告2022版
- java程序猿面试问缺点怎么回答_面试程序员被问“你的缺点是什么”,我该怎么回答?...
- kdj指标计算程序代码
- 基于springboot电商生鲜购物商城平台设计与实现(含源码+数据库文件)
- 小知识·PD充电协议
- Helm-chart学习-简单介绍与使用
- python如何手动编写开根号的算法_手动开根号方法
- AVRWARE++开发笔记8:Atmel Studio去除拼写检查
热门文章
- MongoDB聚合(二)
- 程序员应该具备哪些素质
- [Step By Step]SAP HANA PAL多项式回归预测分析Polynomial Regression编程实例FORECASTWITHPOLYNOMIALR(预测)...
- Kinect+OpenNI学习笔记之2(获取kinect的颜色图像和深度图像)
- 有商在线进销存成功案例
- TCP连接发送窗口问题思考
- 关于DMA的两个小知识点
- latex 图片和标题一起旋转
- 【尚未完成,不建议参考】马氏距离,汉明距离
- latex 错误: BibTeX: empty journal in Lv2021