求乙個圖的連通分量
輸入乙個數n(n<=100)表示頂點數,下面每行輸入兩個整數,表示一條邊的兩個頂點,輸入兩個0表示結束。
乙個整數,為這個圖的連通分量。
863
1225
5441
8700
3
這道題方法有很多種,在老師的要求下作者寫了5種方法,如果有不太清楚的地方望各位海涵
#include
using
namespace std;
int n,a[
110]
[110
],b[
110]
,t,maxn;
void
dfs(
int now,
int star)
//深度優先搜尋
intmain()
while
(x||y)
//輸入
for(
int i=
1;i<=n;i++
) cout<
}
#include
using
namespace std;
int n,b[
110]
,maxn,ans,hd[
110]
,tot;
struct abca[
1100110];
void
add(
int x,
int y)
//插入鄰接表
void
dfs(
int now)
//深度優先搜尋
}int
main()
for(
int i=
1;i<=n;i++)}
cout<
1<
//還要加上自身的點
}
#include
using
namespace std;
int n,a[
110]
[110
],b[
110]
,t,maxn,hd=
0,tl=1;
struct abcf[
110]
;int
main()
while
(x||y)
for(
int i=
1;i<=n;i++)}
}if(tl>maxn)
maxn=tl;}}
cout<
1<
}
#include
using
namespace std;
int b[
110]
,n,f[
100010
],tot,maxn,hd[
100010];
struct abca[
1100110];
void
add(
int x,
int y)
intmain()
for(
int i=
1;i<=n;i++)}
}if(tl>maxn)
maxn=tl;}}
cout<
1<
}
#include
#include
using
namespace std;
int b[
110]
,n,tot,maxn,hd[
100010];
struct abca[
1100110];
void
add(
int x,
int y)
intmain()
for(
int i=
1;i<=n;i++)}
f.pop();
}if(ans>maxn)
maxn=ans;}}
cout<
}
後面的三個作者都沒有加標,因為大部分和上面差不多,最後乙個作者也不太懂 。 1759 求連通分量
求連通分量 time limit 1000ms memory limit 65536k total submit 243 accepted 136 description 求乙個圖的連通分量 input n 頂點數 100 邊 output 連通分量 sample input 5 1 23 4 2 ...
ssl1759 求連通分量
求連通分量 time limit 1000ms memory limit 65536k total submit 240 accepted 135 description 求乙個圖的連通分量 input n 頂點數 100 邊 output 連通分量 sample input 5 1 23 4 2 ...
SSL 1759 求連通分量
求乙個圖的連通分量 應為最大連通分量 n頂點數 100 邊連通分量 同上 863 1225 5441 87004對於每個點,判斷是否被標記過,如果沒有,就從該點向外搜尋並標記,並對大小取最大值即可 本題寫了五種特別像的方法,請欣賞 include include using namespace st...