P1101 單詞方陣

2022-09-17 08:57:11 字數 1690 閱讀 6682

題目描述

給一 n \times nn×n 的字母方陣,內可能蘊含多個「yizhong」單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用*代替,以突出顯示單詞。例如:

輸入:

8   輸出:

qyizhong    *yizhong

gydthkjy    gy******

nwidghji    n*i*****

orbzsfgz    o**z****

hhgrhwth    h***h***

zzzzzozo    z****o**

iwdfrgng    i*****n*

yyyygggg    y******g

輸入輸出格式

輸入格式:

第一行輸入乙個數 nn 。( 7 \le n \le 1007≤n≤100 )。

第二行開始輸入 n \times nn×n 的字母矩陣。

輸出格式:

突出顯示單詞的 n \times nn×n 矩陣。

輸入輸出樣例

輸入樣例#1:

7 aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

aaaaaaa

輸出樣例#1:

*******

*******

*******

*******

*******

*******

*******

題解: dfs,每次直接固定方向的搜尋。

#include 

using

namespace

std;

const

int maxn=110;

int vis[maxn][maxn];

int ans[maxn][maxn];

char str=;

int n;

int dx[8]=;

int dy[8]=;

bool check(int x,int y,int k)

void print()//此處是記錄那些點是可以構成yizhong

}}void dfs(int x,int y ,int mx,int my,int k)

int kx=x+mx;

int ky=y+my;

if(check(kx,ky,k+1))

}int main() }}

}for(int i=0;ifor (int j = 0; j < n; ++j)

printf("\n");

}return0;}

/*8qyizhong

gydthkjy

nwidghji

orbzsfgz

hhgrhwth

zzzzzozo

iwdfrgng

yyyygggg

*/

P1101 單詞方陣

給一nxn的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間 color red 可以 color 交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8...

P1101 單詞方陣

題目鏈結 題目描述 給一 n n 的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 ...

P1101 單詞方陣

給一 n times nn n 的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 88 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8 輸出 ...