洛谷P1101 單詞方陣 DFS

2021-08-28 03:13:01 字數 1600 閱讀 1988

給一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:複製

*******

*******

*******

*******

*******

*******

*******

思路:深搜有點麻煩,其實可以暴力?

#include#include#include#include#includeusing namespace std;

char s[105][105],c[7]="izhong";

int mark[105][105];

int next[8][2]=,,,,,,,};

int n,dx,dy;

void dye(int x,int y,int step,int directon)

void dfs(int x,int y,int step,int direction)

dx=x+next[direction][0];

dy=y+next[direction][1];

if(s[dx][dy] != c[step])

return;

else

dfs(dx,dy,step+1,direction);

}int main()

for(int i=0;i}

}for(int i=0;iprintf("\n");

}return 0;

}

洛谷 P1101 單詞方陣(dfs)

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

洛谷P1101單詞方陣

整體的思路 在矩陣中找到 y 然後對 y 進行八個方向的搜尋 用cmp陣列存 yizhong 在每乙個方向中和cmp進行比較,若存在任意乙個不同,則處理下乙個方向。include includeusing namespace std const int dx 方向陣列 const int dy co...

洛谷 P1101 單詞方陣

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