求連通分量的個數:
搜尋時從第乙個字元(對應乙個正方形)開始,每搜尋到乙個正方形,對該位置的四個可能方向進行下一步搜尋,下一步搜尋需要滿足的條件是 當前這個正方形有某個方向的搜尋方向且下乙個正方形也有這個方向的接受(連線)方向,故可進行一步搜尋。例如 當前的可走的某個方向為「上」,則下乙個正方形的連線方向應該為「下」,同理。上 --下,右-- 左, 下--上, 左---右。 往前走一步,要將當前正方形設定為已訪問,表示當前搜尋過程不能回到經過的正方形。 一旦前進不了,要回退,回到上一步的情形。
**如下:
1 #include2 #include3 #include4 #include
5#define n 55
6using
namespace
std;
7char
map[n][n];
8int
flag[n][n];
9int
m,n;
10int dir[4][2]=,,,} ; //
方向是上右下左的順時針
11//
tube1 可走的方向
12//
tube2 可被選的方向,
13//
搜尋需滿足這個正方形可以走的方向,且下乙個正方形在該方向可被走(連線),故可搜尋下乙個正方形
1415
int tube1[11][4]=,,,,,,,,,,};
16int tube2[11][4]=,,,,,,,,,,};
17void dfs(int x,int
y)1832}
33}34int
main()
3547}48
for(i=0;i)
4957}58
}59 cout6061}62
return0;
63 }
BFS 連通分量 求連通分量
題目描述 求乙個圖的連通分量 input n 頂點數 100 邊 以0 0作為結束標誌 output 連通分量 強連通圖的連通分量為其本身。如果為非連通圖,則連通分量為該圖的最大連通子圖。分析 建乙個100 100的布林矩陣,b x,y true表示x與y連通。同時還要記錄該點是否被遍歷過 然後遍歷...
求連通分量
求連通分量 time limit 1000ms memory limit 65536k total submit 233 accepted 132 description 求乙個圖的連通分量 input n 頂點數 100 邊 output 連通分量 sample input 5 1 2 3 4 2...
強連通分量 tarjan求強連通分量
雙dfs方法就是正dfs掃一遍,然後將邊反向dfs掃一遍。挑戰程式設計 上有說明。雙dfs 1 include 2 include 3 include 4 include 5 6using namespace std 7const int maxn 1e4 5 8 vector g maxn 圖的鄰...