時限: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個...