5003 馬遍歷問題

2022-05-22 03:00:08 字數 973 閱讀 6916

time limit: 10 second

memory limit: 2 mb

中國象棋棋盤如圖所示。馬自左下角(0,0)往右上角(8,9)跳。今規定只許往右跳,不許往左跳。

求出所有可行的跳行路線。比如圖中所示為第一種跳行路線,並將所經路線按如下格式輸出:

1:(0,0)->(1,2)->(2,4)->(3,6)->(4,8)->(6,9)->(7,7)->(8,9)

無輸入檔案

輸出所有可行的行走路線

格式為:1:(0,0)->(1,2)->(2,4)->(3,6)->(4,8)->(6,9)->(7,7)->(8,9)

輸出方案中,輸出優先順序為(i+1,j+2)>(i+2,j+1)>(i+2,j-1)>(i+1,j-2)。其中(i,j)代表馬當前位置,i是橫座標,j是縱座標。

1:(0,0)->(1,2)->(2,4)->(3,6)->(4,8)->(6,9)->(7,7)->(8,9)

2:(0,0)->(1,2)->(2,4)->(3,6)->(4,8)->(5,6)->(6,8)->(8,9)

3:......

4:......

5:......

......

【題解】

從0,0開始按照題目的順序搜尋就可以了,深搜。最後列印方案。

【**】

#include const int maxp = 10;

bool can[maxp][maxp];

int step = 0,ans[1000][3],nans = 0;

void init() //初始化陣列,一開始所有的位置都可以走。can

void tr_y(int x,int y) //嘗試到(x,y)這個位置

can[x][y] = true; //回溯到之前的狀態

step--;

}int main()

BFS 馬的遍歷

又是一道裸bfs。主要是為了過洛谷上的試煉場。有乙個n m的棋盤 1 n,m 200 在某個點上有乙個馬,要求你計算出馬到達棋盤上任意乙個點最少要走幾步 輸入描述 一行四個資料,棋盤的大小和馬的座標 輸出描述 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 inp...

zufeoj 馬的遍歷

中國象棋半張棋盤如圖4 a 所示。馬自左下角往右上角跳。今規定只許往右跳,不許往左跳。比如圖4 a 中所示為一種跳行路線,並將所經路線列印出來。列印格式為 0,0 2,1 3,3 1,4 3,5 2,7 4,8 無輸入輸出上述棋盤的可以從 0,0 走到 4,8 點的方案數。includeusing ...

4 馬的遍歷

有乙個n m的棋盤 1一行四個資料,棋盤的大小和馬的座標 乙個n m的矩陣,代表馬到達某個點最少要走幾步 左對齊,寬5格,不能到達則輸出 1 輸入 1複製 3 3 1 1輸出 1複製 0 3 2 3 1 1 2 1 4 include include include include includeu...