水題 字母旋轉遊戲

2021-10-23 04:14:26 字數 1750 閱讀 8907

給定兩個整數m,n,生成乙個m*n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m=5,n=8時,矩陣中的內容如下:

a b c d e f g h

v w x y z a b i

u j k l m n c j

t i h g f e d k

s r q p o n m l

input

m為行數,n為列數,其中m,n都為大於0的整數。

output

分行輸出相應的結果

sample input4 9sample output a b c d e f g h i

v w x y z a b c j

u j i h g f e d k

t s r q p o n m l

遞迴寫法:

#include

#include

#include

#include

using

namespace std;

const

int n =

1010

;int d[n]

[n];

int idx;

int n, m;

void

dfs(

int x,

int y)

, dy[4]

=;//上右下左

if(idx == n * m)

return;if

(x ==

1&& y ==1)

y = m;

}for

(int i =

0; i <

4; i ++)if

(x + dx[i]

<= n && d[x + dx[i]

][y + dy[i]]==

0&& y + dy[i]

<= m && x + dx[i]

>

0&& y + dy[i]

>0)

}else

if(i ==1)

}else

if(i ==2)

}else

if(i ==3)

}}dfs(x, y);}

intmain()

for(

int i =

1; i <= n; i ++

)return0;

}

遞推寫法:

#include

using

namespace std;

int res[

100]

[100];

intmain()

, dy=

;for

(int x =

0, y =

0, d =

0, k =

1; k <= n * m; k ++

) x = a, y = b;

}for

(int i =

0; i < n; i ++

)for

(int j =

0; j < m; j ++

)for

(int i =

0; i < n; i ++

)return0;

}

2938 字母旋轉遊戲

描述給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m 5,n 8時,矩陣中的內容如下 a b c d e f g h v w x y z a b i u j k l m...

POJ 3752 字母旋轉遊戲

字母旋轉遊戲 time limit 1000ms memory limit 65536k total submissions 7053 accepted 2642 description 給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時...

POJ 3752 字母旋轉遊戲 模擬 動態陣列

description 給定兩個整數m,n,生成乙個m n的矩陣,矩陣中元素取值為a至z的26個字母中的乙個,a在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置,當超過26時又從a開始填充。例如,當m 5,n 8時,矩陣中的內容如下 a b c d e f g h v w x y z a b i...