JZOJ__Day 1:【NOIP普及模拟】JABUKE
生活随笔
收集整理的這篇文章主要介紹了
JZOJ__Day 1:【NOIP普及模拟】JABUKE
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
????Mirko?最近發現了一個古老的游戲。這個游戲的屏幕有N列。在屏幕的底部,有個占M(M<N)列的船。在玩這個游戲的
過程中,我們可以左右移動這條船,但是這條船必須時刻完整的在屏幕里面。這條船開始的時候是在最左邊的。有一些蘋果從
這個屏幕的頂部掉下來,每個蘋果會從屏幕N列中的某一列的頂部掉下來,垂直下落直到到達屏幕的底部。當前一個蘋果掉落在
底部以后,后一個蘋果開始下落。一個蘋果被船接到是這么定義的:這條船占有這個蘋果掉下來的那一列。我們的目標是接到所
有的蘋果,在這種情況下,我們要求在所有蘋果的掉落過程中,盡量減少船的移動總距離。
輸入
第一行包括兩個整數N和M(1<=M<N<=10),第二行輸入一個整數J,表示蘋果的總個數,接下來的J行,每行一個整數,表示相應的蘋果掉落在第幾列。
輸出
輸出只有一個整數,代表在所有蘋果下落的過程中,我們需要最少的移動船的總距離。
樣例輸入
5 1 3 1 5 3樣例輸出
6數據范圍限制
提示
輸入:
5 2
3
1
5
3
輸出:
4
分析
三種情況:
第一種:船能接住蘋果,不用移動。
第二種:蘋果在船的左邊,只需把船最左邊的坐標變成蘋果落下來的那一列,再把船最右邊的坐標處理一下。
第三種:蘋果在船的右邊,只需把船最右邊的坐標變成蘋果落下來的那一列,再把船最左邊的坐標處理一下。
程序:
? ? ? ??
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.轉載于:https://www.cnblogs.com/YYC-0304/p/9500097.html
總結
以上是生活随笔為你收集整理的JZOJ__Day 1:【NOIP普及模拟】JABUKE的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JZOJ__Day 2:【普及模拟】串
- 下一篇: JZOJ__Day 1【NOIP普及模拟