File tree Expand file tree Collapse file tree 1 file changed +84
-0
lines changed Expand file tree Collapse file tree 1 file changed +84
-0
lines changed Original file line number Diff line number Diff line change 1+ #include < bits/stdc++.h>
2+ using namespace std ;
3+
4+ #define pfi (a ) printf(" %d" ,a);
5+ #define pfl (a ) printf(" %lld" ,a);
6+ #define ss second
7+ #define ff first
8+ #define pfin (a ) printf(" %d\n " ,a);
9+ #define pfln (a ) printf(" %lld\n " ,a);
10+ #define pfis (a ) printf(" %d " ,a);
11+ #define pfls (a ) printf(" %lld " ,a);
12+ #define sfi (a ) scanf(" %d" ,&a);
13+ #define sfl (a ) scanf(" %lld" ,&a);
14+ #define fast ios_base::sync_with_stdio (false );cin.tie(NULL );cout.tie(NULL )
15+ #define f (i,a,b ) for (int i=a;i<b;i++)
16+ #define pb (a ) push_back(a);
17+ #define mp (a,b ) make_pair(a,b)
18+ #define ll long long
19+
20+ const ll mod=1e9 +7 ;
21+
22+ vector<ll> v1[100005 ];
23+ bool vis[100005 ]={false };
24+ ll par[100005 ]={0 };
25+ ll child[100005 ]={0 };
26+ ll xr[100005 ]={0 };
27+ void dfs (ll s)
28+ {
29+ ll i;
30+ vis[s]=true ;
31+ for (i=0 ;i<v1[s].size ();i++)
32+ {
33+ ll k=v1[s][i];
34+ if (vis[k]==false )
35+ {
36+ child[s]++;
37+ par[k]=s;
38+ dfs (k);
39+ }
40+ }
41+ }
42+
43+ int main ()
44+ {
45+ ll n,k,i;
46+ sfl (n);
47+ sfl (k);
48+ for (i=0 ;i<n-1 ;i++)
49+ {
50+ ll a,b;
51+ sfl (a);
52+ sfl (b);
53+ v1[a].pb (b);
54+ v1[b].pb (a);
55+ }
56+ dfs (1 );
57+ xr[1 ]=0 ;
58+ for (i=2 ;i<=n;i++)
59+ {
60+
61+ // cout<<i<<" "<<par[i]<<" "<<child[i]<<endl;
62+ if (child[par[i]]>=k)
63+ {
64+ xr[i]=par[i]^xr[par[i]];
65+ }
66+ else
67+ {
68+ xr[i]=xr[par[i]];
69+ }
70+ }
71+
72+ for (i=1 ;i<=n;i++)
73+ {
74+ cout<<xr[i]<<endl;
75+ }
76+
77+
78+
79+
80+
81+
82+
83+ return 0 ;
84+ }
You can’t perform that action at this time.
0 commit comments