【筆記】DFS (Depth First Search,深度優先搜尋) - Yui Huang ...

文章推薦指數: 80 %
投票人數:10人

【用途】用來遍歷樹(tree)或圖(graph)的演算法。

【觀念】由圖的某一點開始搜尋,先探尋鄰接邊(edge)上未搜尋的一點,並儘可能往深處搜索,直到最後, ... SkiptocontentSkiptoblogsidebar 【用途】用來遍歷樹(tree)或圖(graph)的演算法。

【觀念】由圖的某一點開始搜尋,先探尋鄰接邊(edge)上未搜尋的一點,並儘可能往深處搜索,直到最後,再回溯(backtracking)到前一個節點,持續拜訪未搜尋的節點,直到到達目標節點或已經遍歷所有節點。

【實作】以遞迴(recursion)方式實現。

【範例】ZeroJudged908:4.最佳路徑【題解】 #include #include #include usingnamespacestd; map>>mp; charstart; intfunc(intstart,inttotal){ if(!mp.count(start))returntotal; intmaxi=0; for(pairp:mp[start]){ maxi=max(func(p.first,total+p.second),maxi); } returnmaxi; } intmain(){ intnum; while(cin>>start>>num){ mp.clear(); chara,b; intn; for(inti=0;i>a>>b>>n; mp[a].push_back({b,n}); } cout<



請為這篇文章評分?