題目描述:
給一n×n的字母方陣,內可能蘊含多個「yizhong」單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著 8 個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間可以交叉,因此有可能共用字母。輸出時,將不是單詞的字母用*代替,以突出顯示單詞。思路:
先宣告又是看的題解才看明白,侵刪。先遍歷地圖,如果有乙個點為y那麼從八個方向找乙個i,如果找到了,那麼這個方向就確定了,把它作為dfs的乙個引數。dfs中,因為都是這個點滿足條件了,才傳給dfs的,所以dfs不需要再判斷這個點了,只需要判斷下乙個點是否符合條件就可以了,在沒到字串最後的時候判斷下乙個點是否符合字串下乙個位置的字元,如果到了最後就是等於6,這個時候字串下個位置為\0,所以要加上這個或條件,進入下一次的dfs。還有就是如果這個點滿足了條件就把他加進node結構體中,標記一下這個點,最後如果滿足條件,遍歷node把flag標記為1就好。
**:
#include
using namespace std;
struct nodec[10]
;int n;
char e[
105]
[105];
int flag[
105]
[105];
char str=
"yizhong"
;int next[8]
[2]=
,,,,
,,,}
;int
dfs(
int x,
int y,
int k,
int cur)
else}}
intmain()
}}}for
(int i=
1; i<=n; i++
)printf
("\n");
}return0;
}
洛谷 1101 單詞方陣
給一nxn的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間 color red 可以 color 交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如 輸入 8...
洛谷P1101單詞方陣
整體的思路 在矩陣中找到 y 然後對 y 進行八個方向的搜尋 用cmp陣列存 yizhong 在每乙個方向中和cmp進行比較,若存在任意乙個不同,則處理下乙個方向。include includeusing namespace std const int dx 方向陣列 const int dy co...
洛谷 P1101 單詞方陣
題目描述 給一nxn的字母方陣,內可能蘊含多個 yizhong 單詞。單詞在方陣中是沿著同一方向連續擺放的。擺放可沿著8個方向的任一方向,同一單詞擺放時不再改變方向,單詞與單詞之間 color red 可以 color 交叉,因此有可能共用字母。輸出時,將不是單詞的字母用 代替,以突出顯示單詞。例如...