單向DFS 洛谷P1101

2021-08-29 05:21:58 字數 818 閱讀 6063

這題跟以往的dfs不同的是,它是單向的dfs(因為我做題少,所以第一次見到這種型別的題目)。

思路很簡單,但是對於第一次做這種單向dfs的我來說(我蒻),開始確實感覺無從下手。

這道題目和以往的dfs不同的地方在於,dfs的方向是在外面判斷的,然後還要記錄路徑,路徑記錄全了才能往vis裡面加true。

直接看**吧,這道題應該只有我才會不做了。

#include using namespace std;

typedef pairp;

const int maxn = 110;

char g[maxn][maxn];

int vis[maxn][maxn];

int dx=;

int dy=;

mapmp;

int n;

struct node

c[maxn];

void init()

void dfs(int x,int y,int k,int stp)

return;

} int nowx = x+dx[k];

int nowy = y+dy[k];

if(nowx>=1 && nowx<=n && nowy>=1 && nowy<=n) }

}int main()

else

}} for(int i=1;i<=n;i++)}}

} for(int i=1;i<=n;i++)

{ for(int j=1;j<=n;j++)

{if(vis[i][j])

{coutps:確實寫題解可以幫助理解**。空想是不行的啊!

洛谷 P1101 單詞方陣(dfs)

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

洛谷P1101 單詞方陣 DFS

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

洛谷 P1101 題解

這道題可以用深搜 回溯 來寫,相信大部分人都是這麼想的,但是有些人可能在一些地方饒了半天,所以這裡就貼一下我的思路,個人覺得自己的很好懂,除了tx和ty那裡,但是tx和ty的那種用法對於輸出路徑的題目一般很實用 這個算是比較簡單的吧,題目裡給出了具體要找的字串,我們要做的就是對它進行8個方向的搜尋,...