日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【dfs】【链表】连通图 (ssl 1758)

發(fā)布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。