演算法練習 NOJ 1043 跳馬

2021-07-11 00:17:39 字數 1134 閱讀 1438

時限:1000ms 記憶體限制:10000k 總時限:3000ms

描述 在西洋棋中,馬的走法與中車象棋類似,即俗話說的「馬走日」,下圖所示即西洋棋中馬(k)在一步能到達的格仔(其中黑色的格仔是能到達的位置)。

現有一200*200大小的西洋棋棋盤,棋盤中僅有乙個馬,給定馬的當前位置(s)和目標位置(t),求出馬最少需要多少跳才能從當前位置到達目標位置。

輸入 本題包含多個測例。輸入資料的第一行有乙個整數n(1<=n<=1000),表示測例的個數,接下來的每一行有四個以空格分隔的整數,分別表示馬當前位置及目標位置的橫、縱座標c(x,y)和g(x,y)。座標由1開始。

輸出 對於每個測例,在單獨的一行內輸出乙個整數,即馬從當前位置跳到目標位置最少的跳數。

輸入樣例

2 1 1 2 1

1 5 5 1

輸出樣例 3 4

#include 

int f[8]=;

int step(int

s,int e)

; int d[42000]=,ds[42000]=;

int start,endd,x,y,i;

for(i=0;i<204;i++)

start=0;

endd=1;

d[start]=s;

map[s]=1;

ds[start]=0;

while(startx=d[start];

y=ds[start];

if(x==e)

break;

for(i=0;i<8;i++)

}start++;

}return(y);

}int main()

; scanf("%d",&n);

for(i=0;i"%d

%d%d

%d",&a,&b,&c,&d);

e[i]=step((a+1)*204+b+1,(c+1)*204+d+1);

}for(i=0;iprintf("%d\n",e[i]);

}return(0);

}

NOJ1043 演算法實驗三 跳馬

描述 在西洋棋中,馬的走法與中國象棋類似,即俗話說的 馬走日 下圖所示即西洋棋中馬 k 在一步能到達的格仔 其中黑色的格仔是能到達的位置 現有一200 200大小的西洋棋棋盤,棋盤中僅有乙個馬,給定馬的當前位置 s 和目標位置 t 求出馬最少需要多少跳才能從當前位置到達目標位置。輸入 本題包含多個測...

演算法練習 NOJ 1003 快速排序

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述給定乙個數列,用快速排序演算法把它排成公升序。輸入第一行是乙個整數n,表示要排序的數的個數 下面一行是用空格隔開的n個整數。輸出輸出排序後的數列,每個數字佔一行。輸入樣例 5 3 2 1 4 5 輸出樣例 1 2 3 4 5 快...

演算法練習 NOJ 1005 裝載問題

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述有兩艘船,載重量分別是c1 c2,n個貨櫃,重量是wi i 1 n 且所有貨櫃的總重量不超過c1 c2。確定是否有可能將所有貨櫃全部裝入兩艘船。輸入多個測例,每個測例的輸入佔兩行。第一行一次是c1 c2和n n 10 第二行n個...