JZOJ__Day 1:【NOIP普及模拟】JABUKE
題目描述
????Mirko?最近發(fā)現(xiàn)了一個(gè)古老的游戲。這個(gè)游戲的屏幕有N列。在屏幕的底部,有個(gè)占M(M<N)列的船。在玩這個(gè)游戲的
過程中,我們可以左右移動(dòng)這條船,但是這條船必須時(shí)刻完整的在屏幕里面。這條船開始的時(shí)候是在最左邊的。有一些蘋果從
這個(gè)屏幕的頂部掉下來,每個(gè)蘋果會(huì)從屏幕N列中的某一列的頂部掉下來,垂直下落直到到達(dá)屏幕的底部。當(dāng)前一個(gè)蘋果掉落在
底部以后,后一個(gè)蘋果開始下落。一個(gè)蘋果被船接到是這么定義的:這條船占有這個(gè)蘋果掉下來的那一列。我們的目標(biāo)是接到所
有的蘋果,在這種情況下,我們要求在所有蘋果的掉落過程中,盡量減少船的移動(dòng)總距離。
輸入
第一行包括兩個(gè)整數(shù)N和M(1<=M<N<=10),第二行輸入一個(gè)整數(shù)J,表示蘋果的總個(gè)數(shù),接下來的J行,每行一個(gè)整數(shù),表示相應(yīng)的蘋果掉落在第幾列。
輸出
輸出只有一個(gè)整數(shù),代表在所有蘋果下落的過程中,我們需要最少的移動(dòng)船的總距離。
樣例輸入
5 1 3 1 5 3樣例輸出
6數(shù)據(jù)范圍限制
提示
輸入:
5 2
3
1
5
3
輸出:
4
分析
三種情況:
第一種:船能接住蘋果,不用移動(dòng)。
第二種:蘋果在船的左邊,只需把船最左邊的坐標(biāo)變成蘋果落下來的那一列,再把船最右邊的坐標(biāo)處理一下。
第三種:蘋果在船的右邊,只需把船最右邊的坐標(biāo)變成蘋果落下來的那一列,再把船最左邊的坐標(biāo)處理一下。
程序:
? ? ? ??
var n,m,j,w,a,b,i,tj:longint; beginreadln(n,m);readln(j);a:=1;b:=m;tj:=0;for i:=1 to j dobeginreadln(w);if w<a thenbegintj:=tj+(a-w);b:=b-(a-w);a:=w;end elseif w>b thenbegintj:=tj+(w-b);a:=a+(w-b);b:=w;end;end;write(tj); end.轉(zhuǎn)載于:https://www.cnblogs.com/YYC-0304/p/9500097.html
總結(jié)
以上是生活随笔為你收集整理的JZOJ__Day 1:【NOIP普及模拟】JABUKE的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JZOJ__Day 2:【普及模拟】串
- 下一篇: JZOJ__Day 1【NOIP普及模拟