洛谷 P1101 單詞方陣(dfs,全域性與區域性

2021-10-24 04:12:52 字數 1876 閱讀 1099

傳送門:洛谷 p1101 單詞方陣

【寫在前面】

很久沒有寫部落格了,從2023年8月10日開始到成都,重慶旅遊。回來後每天無所事事,一直玩到今天,良心過不去才來做題and寫部落格qaq

寫部落格的目的是自己監督自己學習,繼續努力吧少年!

^ - ^

new month,new day!

——————分界線————————

一道簡單的深搜題,

退出搜尋條件:

搜到了最後乙個節點時,要將所有搜到的節點記錄下來。

為此我開了乙個二維陣列記錄)

全域性變數:

int n;

char word[

101]

[101];

//input

int flag[

101]

[101

],num[

101]

[101];

//記錄以每乙個節點為起始搜到的可行節點,全部可行節點

string ss=

"yizhong";/*

* 7 8 1

* 6 2

* 5 4 3

*/int d1[8]

=;int d2[8]

=;//方向

注釋,相信看得懂)

廣搜函式:

void

dfs(

int x,

int y,

int z,

int dir)

} flag[x]

[y]=1;

dfs(x+

=d1[dir]

,y+=d2[dir]

,z+1

,dir)

; flag[x]

[y]=0;

}

喜聞樂見的全部**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace std;

int n;

char word[

101]

[101];

int flag[

101]

[101

],num[

101]

[101];

string ss=

"yizhong";/*

* 7 8 1

* 6 2

* 5 4 3

*/int d1[8]

=;int d2[8]

=;void

dfs(

int x,

int y,

int z,

int dir)

} flag[x]

[y]=1;

dfs(x+

=d1[dir]

,y+=d2[dir]

,z+1

,dir)

; flag[x]

[y]=0;

}int

main()

}for

(i=1

;i<=n;i++)}

}for

(i=1

;i<=n;i++

) cout<}}

洛谷 P1101 單詞方陣(dfs)

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

洛谷P1101 單詞方陣 DFS

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

洛谷P1101單詞方陣

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