基础实验 4-2.7 修理牧场(25 分)
发布时间
阅读量:
阅读量
编写程序以确定将一根大木材分割成N段所需的最小费用
输入格式:
输入接着提供一个不超过10⁴的自然数_N_(其中1 ≤ N ≤ 10⁴),表示需要将木材分割成_N_段。随后给出第二行数据:共_N_个正整数(每个数值均不大于50),具体表示各段木材的长度。
输出格式:
输出一个整数,即将木头锯成 N 块的最少花费。
输入样例:
8
4 5 1 2 1 3 1 1
输出样例:
49
代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int number,array[16384],i,answer=0,r,temp;
scanf("%d",&number);
for(i=0;i<number;i++)scanf("%d",array+i);
sort(array,array+number);
for(i=1;i<number;i++){
temp=array[i]+array[i-1];
answer+=temp;
for(r=i+1;r<number;r++)if(array[r]<temp)array[r-1]=array[r];
else break;
array[r-1]=temp;
}
printf("%d",answer);
return 0;
}
提交结果:

全部评论 (0)
还没有任何评论哟~
