题解 P1969 【积木大赛】

缄默Mutism

2018-11-04 17:29:53

Solution

其实这道题没有那么麻烦(非常简单),只需要计算相邻两堆的高度差就行了。q为左边一堆高度,p为右边一堆高度,s为总摆放次数。 1.q<p,即左边的一堆比右边矮,左边的一堆摆完后,右边的还差一点,那么摆放次数s加上两堆的高度差p-q(相当于摆好了右堆)。 2.q>=p,即左边的一堆比右边矮,说明只要左边的一堆堆好了,那么右边的一堆也肯定堆好了,所以不需要增加摆放次数s。 附上代码(p党): readln(n); for i:=1 to n do begin read(p); if q<p then s:=s+p-q; q:=p; end; writeln(s);