【dfs】【链表】连通图 (ssl 1758)
生活随笔
收集整理的這篇文章主要介紹了
【dfs】【链表】连通图 (ssl 1758)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
連通圖
ssl 1758
題目大意
有一個由n個點組成的無向圖,檢測他是否聯(lián)通
原題
判斷一個圖是否為一個邊通圖
Input
n 頂點 (n<=100)
邊
Output
1 表示連通
0 表示不邊通
Sample Input
5
1 2
2 3
5 4
0 0
Sample Output
0
解題方法
用dfs+鏈表從1開始搜,看是否能搜到n個點(包括1)
#include<cstdio> #include<iostream> using namespace std; int s[101],n,x,y,w; bool p[101]; struct rec {int ss,next;//鏈表 }a[10005]; int dfs(int now) {int t=1;//自己p[now]=1;//記錄for (int i=s[now];i;i=a[i].next)//枚舉連接這個點的每一條線if (!p[a[i].ss]) t+=dfs(a[i].ss);//判斷到過沒,再dfsreturn t; } int main() {scanf("%d%d%d",&n,&x,&y);while (x&&y){a[++w].ss=y;//下一個數(shù)a[w].next=s[x];//同一個點的另一條線s[x]=w;//代替a[++w].ss=x;//和上面相反a[w].next=s[y];s[y]=w;scanf("%d%d",&x,&y);}if (dfs(1)==n) printf("1");//等于n就輸出1else printf("0");//否則輸出0 } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結
以上是生活随笔為你收集整理的【dfs】【链表】连通图 (ssl 1758)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神舟十七号载人飞船今日发射,三人航天员乘
- 下一篇: 【最短路】【图论】【Floyed】牛的旅