士兵站隊(duì)問題題解

士兵站隊(duì)問題題解

ID:38128564

大?。?4.50 KB

頁(yè)數(shù):3頁(yè)

時(shí)間:2019-05-27

士兵站隊(duì)問題題解_第1頁(yè)
士兵站隊(duì)問題題解_第2頁(yè)
士兵站隊(duì)問題題解_第3頁(yè)
資源描述:

《士兵站隊(duì)問題題解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、【問題描述】在一個(gè)劃分成網(wǎng)格的操場(chǎng)上,n個(gè)士兵散亂地站在網(wǎng)格點(diǎn)上。網(wǎng)格點(diǎn)用整數(shù)坐標(biāo)(x,y)表示。士兵們可以沿網(wǎng)格邊往上、下、左、右移動(dòng)一步,但在同一時(shí)刻任一網(wǎng)格點(diǎn)上只能有一名士兵。按照軍官的命令,士兵們要整齊地列成一個(gè)水平隊(duì)列,即排列成(x,y),(x+1,y),…,(x+n-1,y)。如何選擇x和y的值才能使士兵們以最少的總移動(dòng)步數(shù)排成一行。編程計(jì)算使所有士兵排成一行需要的最少移動(dòng)步數(shù)。【輸入格式】第1行是士兵數(shù)n,1≤n≤10000。接下來n行是士兵的初始位置,每行有2個(gè)整數(shù)x和y,-10000≤x,y≤10000?!据敵龈袷健恳粋€(gè)數(shù)據(jù),即士兵排成一行需要的最少移動(dòng)步數(shù)?!据?/p>

2、入樣例】sol.in51222133-233【輸出樣例】sol.out8?分析:一士兵有多種移動(dòng)方式通過適當(dāng)?shù)囊苿?dòng)順序和移動(dòng)路線可以使得同一時(shí)刻不會(huì)有兩名士兵站在同一點(diǎn)二題目要求最佳移動(dòng)方式(即求移動(dòng)的最少步數(shù))題目要求轉(zhuǎn)化為求士兵站立的“最終位置”,即如何取“最終位置”使得士兵移動(dòng)的步數(shù)最少(最優(yōu))Y軸方向上的考慮設(shè)目標(biāo)坐標(biāo)為M,即n個(gè)士兵最終需要移動(dòng)到的Y軸的坐標(biāo)值為Mn個(gè)士兵的Y軸坐標(biāo)分別為:Y0,Y1,Y2…………Yn-1則最優(yōu)步數(shù)S=

3、Y0-M

4、+

5、Y1-M

6、+

7、Y2-M

8、+…………+

9、Yn-1-M

10、結(jié)論:M取中間點(diǎn)的值使得S為最少(最優(yōu))證明:……從最上和最下的兩個(gè)士兵

11、開始遞推……最優(yōu)位置最優(yōu)位置歸結(jié)到最后,處于中間位置的士兵的Y軸坐標(biāo)值就是“最終位置”的Y軸坐標(biāo)可能有兩種情況士兵總數(shù)為雙數(shù)情況:取中間兩點(diǎn)間的任意一個(gè)位置士兵總數(shù)為單數(shù)情況:取中間點(diǎn)的所在位置解決辦法:對(duì)所有的Y軸坐標(biāo)進(jìn)行排序(O(nlogn))或者進(jìn)行線性時(shí)間選擇(O(n))然后取“中間”點(diǎn)的Y軸坐標(biāo)值作為最佳位置M的值最后通過公式求出Y軸方向上移動(dòng)的最優(yōu)步數(shù)X軸方向上的考慮首先需要對(duì)所有士兵的X軸坐標(biāo)值進(jìn)行排序然后,按從左至右的順序依次移動(dòng)到每個(gè)士兵所對(duì)應(yīng)的“最終位置”(最優(yōu)),所移動(dòng)的步數(shù)總和就是X軸方向上需要移動(dòng)的步數(shù)例,最左的士兵移動(dòng)到“最終位置”的最左那位,第二個(gè)士兵

12、移動(dòng)到“最終位置”的第二位則總的步數(shù)為:士兵一移動(dòng)步數(shù)+士兵二移動(dòng)步數(shù)+……+士兵n移動(dòng)步數(shù)如何確定X軸方向上的最佳的“最終位置”?共n個(gè)士兵他們相應(yīng)的X軸坐標(biāo)為:X0,X1,X2…………Xn-1設(shè),士兵需要移動(dòng)到的“最終位置”的X軸坐標(biāo)值為:k,k+1,k+2…………k+(n-1)則所求最優(yōu)步數(shù)S=

13、X0-k

14、+

15、X1-(k+1)

16、+

17、X2-(k+2)

18、+……+

19、Xn-1-(k+(n-1))

20、經(jīng)過變形S=

21、X0-k

22、+

23、(X1-1)-k

24、+

25、(X2-2)-k

26、+…………+

27、(Xn-1-(n-1))-k

28、注意到公式的形式與Y軸方向上的考慮一樣,同樣是n個(gè)已知數(shù)分別減去一個(gè)待定數(shù)后取

29、絕對(duì)值,然后求和因此還是采用取中位數(shù)的辦法求得k值,最后算出最優(yōu)解。?參考程序:type?arr=array[-10001..10001]oflongint;var?i,j,k,l,n,m,num:longint;?f:array[-10001..10001]ofboolean;?a,b,c:arr;procedure?ok(l,r:longint);?var?i,j,x,y:longint;begin?i:=l;j:=r;x:=a[(l+r)div2];?repeat???whilea[i]

30、en??begin?????y:=a[i];a[i]:=a[j];a[j]:=y;?????i:=i+1;j:=j-1;???end;?untili>j;?ifl

31、b[j]:=y;?????i:=i+1;j:=j-1;???end;?untili>j;?ifl

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。