求連通分量
time limit:1000ms memory limit:65536k
total submit:233 accepted:132
description
求乙個圖的連通分量
input
n 頂點數(<=100)邊
output
連通分量
sample input
5 1 2
3 4
2 3
0 0sample output
4首先解釋一下樣例輸入:
5 //頂點的數量
1 2 //頂點1和頂點2相連
3 4 //頂點3和頂點4相連
2 3 //頂點2和頂點3相連
0 0 //兩個零表示結束
輸出的就是最多有幾個點是連在一起的
這題在dfs的基礎上減少了回溯的那一部分,輸入稍微麻煩一點
var
i,n,x,y,ans,max:longint;
b:array[0..101,0..101]of boolean;
a:array[0..101]of boolean;
procedure
dfs(k:longint);
var i:longint;
begin
for i:=1
to n do
if (b[i,k])and(a[i]=false) then
begin
a[i]:=true;
inc(ans);
dfs(i);
end;
end;
begin
readln(n);
readln(x,y);
while (x<>0)or(y<>0) do
begin
b[x,y]:=true;
b[y,x]:=true;
readln(x,y);
end;
for i:=1
to n do
begin
ans:=0;
dfs(i);
if ans>max then max:=ans;
end;
writeln(max);
end.
BFS 連通分量 求連通分量
題目描述 求乙個圖的連通分量 input n 頂點數 100 邊 以0 0作為結束標誌 output 連通分量 強連通圖的連通分量為其本身。如果為非連通圖,則連通分量為該圖的最大連通子圖。分析 建乙個100 100的布林矩陣,b x,y true表示x與y連通。同時還要記錄該點是否被遍歷過 然後遍歷...
強連通分量 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 圖的鄰...
1759 求連通分量
求連通分量 time limit 1000ms memory limit 65536k total submit 243 accepted 136 description 求乙個圖的連通分量 input n 頂點數 100 邊 output 連通分量 sample input 5 1 23 4 2 ...