bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

騎士巡游java代碼 騎士源碼

騎士巡游問題時間復(fù)雜度是多少

樓上的程序太麻煩,效率低【騎士游歷問題】 設(shè)有一個m×n的棋盤(2≤m≤50,2≤n≤50),在棋盤上任一點有一個中國象棋“馬”,馬走的規(guī)則為:馬走日字;馬只能向右走。當(dāng)m,n給出后,同時給出馬起始的位置和終點的位置,試找出從起點到終點所有路徑的數(shù)目。輸入: m,n,x1,y1,x2,y2 (分別表示m,n、起點坐標(biāo)和終點坐標(biāo))輸出: 路徑數(shù)目(若不存在,則輸出0)【分析】 本題可以使用深度搜索發(fā)求解,但是效率很低,當(dāng)路徑很多時,不可能在短時間內(nèi)出解。可以采用動態(tài)規(guī)劃的設(shè)計思想。(專為樓下設(shè)計) 從(x1,y1)位置出發(fā),按照由左到右的順序定義階段的方向。位于(x2,y2)的左方且可達(dá)(x2,y2)的跳馬位置集合都是(x2,y2)的子問題,起點至(x2,y2)的路徑數(shù)實際上等于起點至這些位置集的路徑數(shù)之和。可以按照階段的順序依次計算每一個階段每個點的路徑數(shù)目。 階段i:中國象棋馬當(dāng)前的列位置(x1≤i≤x2) 狀態(tài)j:中國象棋馬在i列的行位置(1≤i≤m) 狀態(tài)轉(zhuǎn)移方程map[i,j]:起點(x1,y1)至(i,j)的路徑數(shù)目附標(biāo)程:const maxm=50; maxn=50;var m,n,x1,y1,x2,y2:integer; i,j,k,x,y:integer; map:array[-2..maxm+2,-2..maxn+2] of extended;beginfillchar(map,sizeof(map),0);readln(m,n,x1,y1,x2,y2);map[x1,y1]:=1;for i:=x1+1 to x2 do for j:=1 to m do map[i,j]:=map[i-1,j-2]+map[i-1,j+2]+map[i-2,j-1]+map[i-2,j+1];writeln(map[x2,y2]:0:0);end. 搜索比較慢,有代碼如下:program p7_1;const dx:array[1..8] of integer=(1,-1,-2,-2,-1,1,2,2); dy:array[1..8] of integer=(2,2,-1,-1,-2,-2,-1,1);var board:array[-1..7,-1..7] of integer; t,i,j,a,b:integer;procedure search(t,x,y:integer);var p,m,n:integer;begin if t=26 then begin for m:=1 to 5 do begin for n:=1 to 5 do write(board[m,n]:3); writeln; end; t:=-1; halt end; if board[x,y]=0 then begin board[x,y]:=t;inc(t); for p:=1 to 8 do search(t,x+dx[p],y+dy[p]); board[x,y]:=0; end;end;begin t:=1; for i:=-1 to 7 do for j:=-1 to 7 do board[i,j]:=-1; for a:=1 to 5 do for b:=1 to 5 do board[a,b]:=0; search(t,1,1); if t-1 then write('Wrong!');end.

創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)遂寧托管服務(wù)器報價,主機托管價格性價比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。

騎士巡游問題

沒做過,看過。“騎士總是移向具有最少出口且沒有到達(dá)過的方格之一”是說,它可移動的位置有N個,在這N個中,尋找下一次可移動的位置最少的那個,做為騎士要去的點的位置。這是一種貪婪法,有的位置有解但你卻求不出來。

騎士巡游問題 pascal 急!!!

樓上的程序太麻煩,效率低

【騎士游歷問題】

設(shè)有一個m×n的棋盤(2≤m≤50,2≤n≤50),在棋盤上任一點有一個中國象棋“馬”,馬走的規(guī)則為:馬走日字;馬只能向右走。當(dāng)m,n給出后,同時給出馬起始的位置和終點的位置,試找出從起點到終點所有路徑的數(shù)目。

輸入:

m,n,x1,y1,x2,y2 (分別表示m,n、起點坐標(biāo)和終點坐標(biāo))

輸出:

路徑數(shù)目(若不存在,則輸出0)

【分析】

本題可以使用深度搜索發(fā)求解,但是效率很低,當(dāng)路徑很多時,不可能在短時間內(nèi)出解。可以采用動態(tài)規(guī)劃的設(shè)計思想。(專為樓下設(shè)計)

從(x1,y1)位置出發(fā),按照由左到右的順序定義階段的方向。位于(x2,y2)的左方且可達(dá)(x2,y2)的跳馬位置集合都是(x2,y2)的子問題,起點至(x2,y2)的路徑數(shù)實際上等于起點至這些位置集的路徑數(shù)之和。可以按照階段的順序依次計算每一個階段每個點的路徑數(shù)目。

階段i:中國象棋馬當(dāng)前的列位置(x1≤i≤x2)

狀態(tài)j:中國象棋馬在i列的行位置(1≤i≤m)

狀態(tài)轉(zhuǎn)移方程map[i,j]:起點(x1,y1)至(i,j)的路徑數(shù)目

附標(biāo)程:

const

maxm=50;

maxn=50;

var

m,n,x1,y1,x2,y2:integer;

i,j,k,x,y:integer;

map:array[-2..maxm+2,-2..maxn+2] of extended;

begin

fillchar(map,sizeof(map),0);

readln(m,n,x1,y1,x2,y2);

map[x1,y1]:=1;

for i:=x1+1 to x2 do

for j:=1 to m do

map[i,j]:=map[i-1,j-2]+map[i-1,j+2]+map[i-2,j-1]+map[i-2,j+1];

writeln(map[x2,y2]:0:0);

end.

搜索比較慢,有代碼如下:

program p7_1;

const dx:array[1..8] of integer=(1,-1,-2,-2,-1,1,2,2);

dy:array[1..8] of integer=(2,2,-1,-1,-2,-2,-1,1);

var board:array[-1..7,-1..7] of integer;

t,i,j,a,b:integer;

procedure search(t,x,y:integer);

var p,m,n:integer;

begin

if t=26 then begin

for m:=1 to 5 do begin

for n:=1 to 5 do write(board[m,n]:3);

writeln;

end;

t:=-1;

halt

end;

if board[x,y]=0 then begin

board[x,y]:=t;inc(t);

for p:=1 to 8 do search(t,x+dx[p],y+dy[p]);

board[x,y]:=0;

end;

end;

begin

t:=1;

for i:=-1 to 7 do

for j:=-1 to 7 do board[i,j]:=-1;

for a:=1 to 5 do

for b:=1 to 5 do board[a,b]:=0;

search(t,1,1);

if t-1 then write('Wrong!');

end.

新聞名稱:騎士巡游java代碼 騎士源碼
本文地址:http://vcdvsql.cn/article46/dopjjhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號定制網(wǎng)站用戶體驗網(wǎng)站策劃網(wǎng)站設(shè)計虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營