link1
# include <bits/stdc++.h>
using namespace std;
# define int long long
typedef pair< int , int > pii;
# define x first
# define y second
# define pb push_back
# define inf 1e18
# define IOS std:: ios:: sync_with_stdio ( false ) ; cin. tie ( 0 ) ; cout. tie ( 0 ) ;
# define fer ( i, a, b) for ( int i= a; i<= b; i++ )
# define der ( i, a, b) for ( int i= a; i>= b; i-- )
const int maxn= 1e5 + 10 ;
const int mod= 1e9 + 7 ;
const int N= 1e5 + 10 ;
int dr[ 4 ] [ 2 ] = { { - 1 , 0 } , { 1 , 0 } , { 0 , - 1 } , { 0 , 1 } } ;
int n, k;
int sg[ N] ;
vector< int > g[ N] ;
int dfs ( int u, int fa)
{
int ans= 0 ;
for ( auto v: g[ u] )
{
if ( v== fa) continue ;
ans^= ( dfs ( v, u) + 1 ) ;
}
return ans;
}
void solve ( )
{
cin>> n;
fer ( i, 1 , n)
{
g[ i] . clear ( ) ;
}
fer ( i, 1 , n- 1 )
{
int x, y;
cin>> x>> y;
g[ x] . pb ( y) ;
g[ y] . pb ( x) ;
}
if ( dfs ( 1 , - 1 ) )
{
puts ( "Alice" ) ;
}
else puts ( "Bob" ) ;
}
signed main ( )
{
IOS;
int _;
cin>> _;
while ( _-- ) solve ( ) ;
return 0 ;
}
link2
# include <bits/stdc++.h>
using namespace std;
# define int long long
typedef pair< int , int > pii;
# define x first
# define y second
# define pb push_back
# define inf 1e18
# define IOS std:: ios:: sync_with_stdio ( false ) ; cin. tie ( 0 ) ; cout. tie ( 0 ) ;
# define fer ( i, a, b) for ( int i= a; i<= b; i++ )
# define der ( i, a, b) for ( int i= a; i>= b; i-- )
const int maxn= 1e5 + 10 ;
const int mod= 1e9 + 7 ;
const int N= 1e5 + 10 ;
int dr[ 4 ] [ 2 ] = { { - 1 , 0 } , { 1 , 0 } , { 0 , - 1 } , { 0 , 1 } } ;
int n, k;
int s[ N] ;
int m;
int sg[ N] ;
int st[ N] ;
int
dfs ( int a)
{
if ( sg[ a] != - 1 ) return sg[ a] ;
int st[ 1000 ] = { 0 } ;
fer ( i, 1 , k)
{
if ( a>= s[ i] )
{
st[ dfs ( a- s[ i] ) ] = 1 ;
}
}
for ( int i= 0 ; ; i++ )
{
if ( ! st[ i] ) return sg[ a] = i;
}
}
void solve ( )
{
memset ( sg, - 1 , sizeof ( sg) ) ;
cin>> k;
fer ( i, 1 , k) cin>> s[ i] ;
sort ( s+ 1 , s+ k+ 1 ) ;
cin>> m;
fer ( i, 1 , m)
{
int x;
cin>> x;
int ans= 0 ;
while ( x-- )
{
int y;
cin>> y;
if ( sg[ y] != - 1 ) ans^= sg[ y] ;
else ans^= dfs ( y) ;
}
if ( ! ans) cout<< "L" ;
else cout<< "W" ;
}
}
signed main ( )
{
IOS;
int _= 1 ;
while ( _-- ) solve ( ) ;
return 0 ;
}
link3
# include <bits/stdc++.h>
using namespace std;
# define int long long
typedef pair< int , int > pii;
# define x first
# define y second
# define pb push_back
# define inf 1e18
# define IOS std:: ios:: sync_with_stdio ( false ) ; cin. tie ( 0 ) ; cout. tie ( 0 ) ;
# define fer ( i, a, b) for ( int i= a; i<= b; i++ )
# define der ( i, a, b) for ( int i= a; i>= b; i-- )
const int maxn= 1e5 + 10 ;
const int mod= 1e9 + 7 ;
const int N= 1e5 + 10 ;
int dr[ 4 ] [ 2 ] = { { - 1 , 0 } , { 1 , 0 } , { 0 , - 1 } , { 0 , 1 } } ;
int n, k;
int sg[ N] ;
vector< int > g[ N] ;
int dfs ( int u, int fa)
{
int ans= 0 ;
for ( auto v: g[ u] )
{
if ( v== fa) continue ;
ans^= ( dfs ( v, u) + 1 ) ;
}
return ans;
}
void solve ( )
{
cin>> n;
fer ( i, 1 , n)
{
g[ i] . clear ( ) ;
}
fer ( i, 1 , n- 1 )
{
int x, y;
cin>> x>> y;
g[ x] . pb ( y) ;
g[ y] . pb ( x) ;
}
if ( dfs ( 1 , - 1 ) )
{
puts ( "Alice" ) ;
}
else puts ( "Bob" ) ;
}
signed main ( )
{
IOS;
int _;
cin>> _;
while ( _-- ) solve ( ) ;
return 0 ;
}