您的位置:首页 > 其它

jzoj P1664 【coci2011/2012 1】JABUKE

2017-07-06 20:10 162 查看
题目大意:

一个有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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: