發現環
時間限制:1.0s 記憶體限制:256.0mb
問題描述
小明的實驗室有n臺電腦,編號1~n。原本這n臺電腦之間有n-1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。
不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路**現了環路。環路上的電腦由於兩兩之間不再是只有一條路徑,使得這些電腦上的資料傳輸出現了bug。
為了恢復正常傳輸。小明需要找到所有在環路上的電腦,你能幫助他嗎?
輸入格式
第一行包含乙個整數n。
以下n行每行兩個整數a和b,表示a和b之間有一條資料鏈結相連。
對於30%的資料,1 <= n <= 1000
對於100%的資料, 1 <= n <= 100000, 1 <= a, b <= n
輸入保證合法。
輸出格式
按從小到大的順序輸出在環路上的電腦的編號,中間由乙個空格分隔。
樣例輸入
51 2
3 12 4
2 55 3
樣例輸出
1 2 3 5
思路:拓撲排序變形:刪除所有入度為1的節點,剩餘所有節點的入度為2,即為環
注意:由於數字範圍太大,所以使用鄰接表儲存圖,而不用鄰接矩陣
c語言 用到結構體指標
#include
#include
int flag[
100000];
int v[
100000];
typedef
struct lnodelnode;
intmain()
for(i=
0;i)while(1
)}else counts++;}
if(counts==n)
break;}
for(i=
1;i<=n;i++
)return0;
}
c++ 使用list更方便
#include
#include
using namespace std;
intmain()
for(i=
1;i<=n;i++)if
(l[i]
.size()
==1)}
for(i=
1;i<=n;i++)if
(l[i]
.size()
==2) cout<" ";
return0;
}
歷屆試題 發現環
題目鏈結 問題描述 小明的實驗室有n臺電腦,編號1 n。原本這n臺電腦之間有n 1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路 現了環路。環路上的電腦由於兩兩之間不再是只有一...
歷屆試題 發現環
問題描述 小明的實驗室有n臺電腦,編號1 n。原本這n臺電腦之間有n 1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路 現了環路。環路上的電腦由於兩兩之間不再是只有一條路徑,使...
歷屆試題 發現環
資源限制 時間限制 1.0s 記憶體限制 256.0mb daily english 雖然世界充滿苦難,但是苦難總是可以戰勝的。while the world is full of suffering,it is also full of overcoming it.小明的實驗室有n臺電腦,編號1 ...