求連通分量

2021-07-29 10:21:13 字數 1265 閱讀 6901

求連通分量

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 ...