jzoj P1664 【coci2011/2012 1】JABUKE

来源:互联网 发布:风力发电现状 知乎 编辑:程序博客网 时间:2024/06/11 07:25

题目大意:
一个有N列的屏幕的底部,有个占M列的船。我们可以左右移动这条船,但是这条船必须时刻完整的在屏幕里面。这条船开始的时候是在最左边的。有一些苹果从这个屏幕的顶部掉下来,每个苹果会从屏幕N列中的某一列的顶部掉下来,垂直下落直到到达屏幕的底部。当前一个苹果掉落在底部以后,后一个苹果开始下落。

一个苹果被船接到是这么定义的:这条船占有这个苹果掉下来的那一列。我们的目标是接到所有的苹果,在这种情况下,我们要求在所有苹果的掉落过程中,尽量减少船的移动总距离。

1<=M < N < =10

题解:
虽然看起来好像要贪心一下,但是其实一个暴力就可以了 /汗
因为苹果是按输入顺序掉落,所以每次掉到哪里就移过去哪里 - -
然后随便搞搞就A了

var     n,m,p,l,r,x,i,ans:longint;begin     readln(n,m);     readln(p);     l:=1; r:=m;     for i:=1 to p do     begin          readln(x);          if x>r          then begin                    ans:=ans+(x-r);                    l:=l+(x-r);                    r:=x;               end;          if x<l          then begin                    ans:=ans+(l-x);                    r:=r-(l-x);                    l:=x;               end;     end;     writeln(ans);end.