#43830: C++詳解-BFS


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [73.68.145.170]
最後登入時間 :
2025-04-13 08:52:22
d626. 小畫家真好用 -- jack1 | From: [24.147.249.5] | 發表日期 : 2024-11-04 00:02

使用 BFS,並且要紀錄每一次走過的點,只要走過就不能再走,不能會造成無窮迴圈。另外,每走到一個點就要將目前位置的字元改成「+」。

 

範例程式碼

 
#45300: Re: C++詳解-BFS


rsj00008 (二信008)

學校 : 基隆市私立二信高級中學
編號 : 49436
來源 : [36.227.94.177]
最後登入時間 :
2025-04-17 21:34:47
d626. 小畫家真好用 -- jack1 | From: [114.24.22.107] | 發表日期 : 2025-02-09 09:24

使用 BFS,並且要紀錄每一次走過的點,只要走過就不能再走,不能會造成無窮迴圈。另外,每走到一個點就要將目前位置的字元改成「+」。

 

用DFS程式較簡潔吧
void dfs(int r,int c)
{
   map[r][c]='+';
   若上下左右(nr,nc) 不出界且為'-'則 dfs(nr,nc)
}
====主程式
只要讀入n, map, i,j後dfs(i,j)
最後印出即可

 
ZeroJudge Forum