#include <bits/stdc++.h>
#define ll long long
#define E 500007
using namespace std ;
ll read() { ll aa ; cin >> aa ; return aa ; }
ll n , m , k , head[E] , q ;
struct edge { ll pre , to ; } bian[E << 2] ;
void add(ll u , ll v) {
bian[++q].pre = head[u] ;
bian[q].to = v ;
head[u] = q ;
}
ll ans[E] , rt ;
bool vis[E] ;
void gai(ll u , ll fath , ll dep) {
vis[u] = 1 ;
if(dep == 0) return ;
for(int i = head[u] ; i ; i = bian[i].pre) {
ll v = bian[i].to ;
if(v == fath) continue ;
gai(v , u , dep-1) ;
}
}
int main() {
n = read() , m = read() , k = read() ;
for(int i = 1 , xi , yi ; i <= m ; i ++) {
xi = read() , yi = read() ;
add(xi , yi) , add(yi , xi) ;
}
for(int i = 1 ; i <= n ; i ++) {
if(vis[i]) continue ;
ans[++rt] = i ;
gai(i , 0 , 2) ;
}
cout << rt << endl ;
for(int i = 1 ; i <= rt ; i ++) cout << ans[i] << ' ' ;
return 0 ;
}
P3557 [POI2013]GRA-Tower Defense Game
原文:https://www.cnblogs.com/trouble-faker/p/10357465.html