洛谷P1101單詞方陣

2021-10-03 04:49:34 字數 1241 閱讀 5988

題目描述

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

思路:

因為同一單詞擺放時不再改變方向,所以不用深度優先搜尋(dfs),只需要在2維字元陣列種,用雙重for迴圈找到『y』,之後分別在這個位置八個方向進行比較即可

試探八個方向的方法和迷宮相同,在另外一篇部落格上。

表示下一步座標

//八個方向

int dx=

;int dy=

;for

(int i=

0;i<

8;i++

)

如上, 建立2個陣列,用for迴圈全部遍歷下一步可能的4個方向

ac**:

#include

using

namespace std;

const

int maxn =

102;

char s[maxn]

[maxn]

;int vis[maxn]

[maxn]

;//八個方向

int dx=

;int dy=

;char ans=

;int n;

void

fun(

int x,

int y)

x1 = x, y1 = y;

if(flag ==1)

//如果7個字元都符合,把位置儲存進vis}}

return;}

intmain()

for(

int i=

0; i

}for

(int i=

0; i

) cout<

}return0;

}

洛谷P1101單詞方陣

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

洛谷 P1101 單詞方陣

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

洛谷P1101 單詞方陣

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