题解 P1969 【积木大赛】

· · 题解

其实这道题没有那么麻烦(非常简单),只需要计算相邻两堆的高度差就行了。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);