十一年前,北湖曾经是一片平整的土地,北湖的施工队打算将其挖出深坑,注水造出人工湖。
为了简化运算,我们假设北湖的地面是一维的,每一块宽度都为1,高度是非负整数,那么可以用一个数组来表达一块地面。
一开始北湖是一片平地,每一块的高度为
。下图是
的情况,用数组表示为[3,3,3,3,3,3,3,3,3,3,3,3]。

施工队根据图纸想将其挖成凹凸不平的形状,如下图所示,数组表示为[0,1,0,2,1,0,1,3,2,1,2,1]。

施工队有一台挖土机,每一天挖土机可以将连续一段区间挖掉一格土。包工头小张想尽快完成任务,请你告诉他将平整的土地挖成图纸所示的情况最少需要多少天?
Input
第一行输入两个整数
。表示北湖的总宽度和初始每一块的高度。
接下来一行
个整数
,表示图纸上每一个位置的高度。
Output
一个整数表示最少几天能将北湖挖好。
Notes
9天挖土的区间为[1,7],[1,3],[5,7],[1,1],[3,3],[6,6],[9,12],[10,10],[12,12]。
#include<stdio.h>
int main()
{
long long int w,h,i,H,r=0,f=0;
scanf("%lld %lld",&w,&h);
for(i=0;i<w;i++)
{
scanf("%lld",&H);
if(f<h-H) r=r+h-H-f;
f=h-H;
}
printf("%lld\n",r);
return 0;
}
文章描述了一个关于在一维北湖地形改造问题中,如何使用挖土机在最少天数内按照图纸将土地挖成特定凹凸形状的数学问题。输入包括初始地形高度和目标高度数组,输出为完成任务所需的最小天数。

被折叠的 条评论
为什么被折叠?



