7 9 跳馬問題 20 分

2021-09-29 23:16:52 字數 1032 閱讀 2756

7-9 跳馬問題 (20 分)

給定m*n(mn<=100)的棋盤,左上角的點座標(1,1),一匹馬從(1,2)點開始沿著日字型(有8種)跳完棋盤上所有點,且每乙個點都只能跳一次,馬每一步從(x,y)點起跳時優先選擇的方向對應座標偏移為:,,,,,,,。有的棋盤會有很多種跳法,現在比較感興趣的是馬的第k種跳法是什麼?

輸入格式:

一行三個整數m,n,k。

輸出格式:

輸出馬的第k種跳法,如果馬無法跳完棋盤所有點則輸出impossible,如果所有跳法數不到k種,則輸出最後一種跳法 。

輸入樣例:

在這裡給出一組輸入。例如:

4 4 1

4 5 6

輸出樣例:

在這裡給出相應的輸出。例如:

impossible

20 1 16 9 12

15 8 11 4 17

2 19 6 13 10

7 14 3 18 5

#include

int m, n, k;

int count1 =

1, count2, mul, loop;

//count1為跳馬步數,count2為第k個種情況

int vis[

100]

[100];

int obj[

100]

[100];

//目標陣列

int dir[8]

[2]=

,,,,

,,,}

;//方向陣列

void

dfs(

int x,

int y)

} count2++

;//目前為第count2種跳馬方法

if(count2 == k)

}else}}

}int

main()

else

}putchar

('\n');

}}else

return0;

}

7 24 跳馬問題 10分

馬在中國象棋以日字形規則移動。請編寫一段程式,給定n m大小的棋盤,以及馬的初始位置 x,y 要求不能重複經過棋盤上的同乙個點,計算馬可以有多少途徑遍歷棋盤上的所有點。輸入格式 第一行為整數t t 10 表示測試資料組數。每一組測試資料報含一行,為四個整數,分別為棋盤的大小以及初始位置座標n,m,x...

7 9 找鞍點 20分

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不存在,則輸出 non...

7 9 找鞍點 20分

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不...