100792024-03-26 16:40:56111Multiplikátoros telebabrátorcpp17Elfogadva 100/100305ms131508 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
#ifndef ONLINE_JUDGE
	freopen("be2.txt","r",stdin);
#endif
	int N;
	cin>>N;
	vector<vector<pair<int,int>>>g(N+1);
	for(int i=0;i<N-1;i++){
		int a,b,c;
		cin>>a>>b>>c;
		g[a].emplace_back(b,c);
		g[b].emplace_back(a,c);
	}
	vector<int>v(N+1);
	auto dfs=[&](auto self,int i,int j)->void{
		for(auto [k,c]:g[j]){
			if(k==i)continue;
			v[k]=v[j]^c;
			self(self,j,k);
		}
	};
	dfs(dfs,0,1);
	vector<array<int,2>>t(1);
	vector<int>r(1,1);
	for(int i=1;i<=N;i++){
		int y=0;
		for(int j=31;j>=0;j--){
			int b=(v[i]>>j&1)^1;
			if(!t[y][b]){
				t[y][b]=t.size();
				t.emplace_back();
				r.push_back(i);
			}
			y=t[y][b];
		}
	}
	vector<int>ans(N+1);
	ans[1]=max_element(v.begin()+1,v.end())-v.begin();
	int x=0;
	auto dfs2=[&](auto self,int i,int j)->void{
		for(auto [k,c]:g[j]){
			if(k==i)continue;
			x^=c;
			int y=0;
			for(int j=31;j>=0;j--){
				int b=x>>j&1;
				if(t[y][b]){
					y=t[y][b];
					continue;
				}
				if(t[y][b^1]){
					y=t[y][b^1];
					continue;
				}
				break;
			}
			ans[k]=r[y];
			self(self,j,k);
			x^=c;
		}
	};
	dfs2(dfs2,0,1);
	for(int i=1;i<=N;i++){
		cout<<ans[i]<<' ';
	}
	cout<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1828 KiB
2Elfogadva7ms5288 KiB
subtask220/20
3Elfogadva7ms5492 KiB
4Elfogadva6ms5688 KiB
5Elfogadva7ms5880 KiB
6Elfogadva7ms5836 KiB
7Elfogadva6ms6192 KiB
8Elfogadva7ms6068 KiB
9Elfogadva6ms6144 KiB
10Elfogadva7ms6456 KiB
11Elfogadva7ms6560 KiB
12Elfogadva6ms6776 KiB
13Elfogadva7ms6960 KiB
14Elfogadva6ms6844 KiB
15Elfogadva6ms6924 KiB
16Elfogadva6ms7164 KiB
subtask380/80
17Elfogadva287ms121424 KiB
18Elfogadva233ms121496 KiB
19Elfogadva231ms121404 KiB
20Elfogadva286ms121300 KiB
21Elfogadva237ms121420 KiB
22Elfogadva289ms121596 KiB
23Elfogadva233ms121572 KiB
24Elfogadva287ms121828 KiB
25Elfogadva234ms122120 KiB
26Elfogadva287ms122272 KiB
27Elfogadva234ms122324 KiB
28Elfogadva287ms122284 KiB
29Elfogadva238ms122336 KiB
30Elfogadva233ms122312 KiB
31Elfogadva293ms122568 KiB
32Elfogadva238ms124384 KiB
33Elfogadva240ms126276 KiB
34Elfogadva305ms131508 KiB
35Elfogadva231ms122756 KiB
36Elfogadva277ms122360 KiB
37Elfogadva273ms122012 KiB
38Elfogadva268ms121448 KiB
39Elfogadva221ms121540 KiB
40Elfogadva216ms121004 KiB