資源限制
時間限制:1.0s 記憶體限制:256.0mb
$daily english
雖然世界充滿苦難,但是苦難總是可以戰勝的。小明的實驗室有n臺電腦,編號1~n。原本這n臺電腦之間有n-1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。while the world is full of suffering,it is also full of overcoming it.
不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路**現了環路。環路上的電腦由於兩兩之間不再是只有一條路徑,使得這些電腦上的資料傳輸出現了bug。
為了恢復正常傳輸。小明需要找到所有在環路上的電腦,你能幫助他嗎?
第一行包含乙個整數n。
以下n行每行兩個整數a和b,表示a和b之間有一條資料鏈結相連。
對於30%的資料,1 <= n <= 1000
對於100%的資料, 1 <= n <= 100000, 1 <= a, b <= n
輸入保證合法。
按從小到大的順序輸出在環路上的電腦的編號,中間由乙個空格分隔。
5
1 23 1
2 42 5
5 3
樣例輸出
1 2 3 5
#include
#include
#include
#include
using namespace std;
const
int n =
1e5+5;
struct edge
edge[n<<1]
;int head[n]
,id;
bool vis[n]
;int pre[n]
;int s,e;
int k;
inline
void
add_edge
(int from,
int to)
void
init()
intmyfind
(int x)
intmyunion
(int x,
int y)
return1;
}void
dfs(
int u,
int cnt)
else
if(to == e && u != s)
//保證不會一開始就走終點,而是走一圈
cnt--
;return;}
}}intmain()
init()
; bool flag =0;
while
(n--
)add_edge
(x,y)
;add_edge
(y,x);}
vis[s]
= true;
vis[e]
= true;
pre[0]
= s;
dfs(s,0)
;return0;
}
#include
#include
#include
#include
using namespace std;
const
int n =
1e5+5;
int d[n]
;struct edge
edge[n<<1]
;int head[n]
,id;
void
init()
inline
void
add_edge
(int from,
int to)
void
topsort
(int n)
}while
(!q.
empty()
)}}for
(int i =
1; i <= n; i++)}
puts(""
);}int
main()
topsort
(n);
return0;
}
歷屆試題 發現環
題目鏈結 問題描述 小明的實驗室有n臺電腦,編號1 n。原本這n臺電腦之間有n 1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路 現了環路。環路上的電腦由於兩兩之間不再是只有一...
歷屆試題 發現環
問題描述 小明的實驗室有n臺電腦,編號1 n。原本這n臺電腦之間有n 1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路 現了環路。環路上的電腦由於兩兩之間不再是只有一條路徑,使...
試題 歷屆試題 發現環
資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 小明的實驗室有n臺電腦,編號1 n。原本這n臺電腦之間有n 1條資料鏈結相連,恰好構成乙個樹形網路。在樹形網路上,任意兩台電腦之間有唯一的路徑相連。不過在最近一次維護網路時,管理員誤操作使得某兩台電腦之間增加了一條資料鏈結,於是網路...