100792024-03-26 16:40:56111Multiplikátoros telebabrátorcpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted3ms1828 KiB
2Accepted7ms5288 KiB
subtask220/20
3Accepted7ms5492 KiB
4Accepted6ms5688 KiB
5Accepted7ms5880 KiB
6Accepted7ms5836 KiB
7Accepted6ms6192 KiB
8Accepted7ms6068 KiB
9Accepted6ms6144 KiB
10Accepted7ms6456 KiB
11Accepted7ms6560 KiB
12Accepted6ms6776 KiB
13Accepted7ms6960 KiB
14Accepted6ms6844 KiB
15Accepted6ms6924 KiB
16Accepted6ms7164 KiB
subtask380/80
17Accepted287ms121424 KiB
18Accepted233ms121496 KiB
19Accepted231ms121404 KiB
20Accepted286ms121300 KiB
21Accepted237ms121420 KiB
22Accepted289ms121596 KiB
23Accepted233ms121572 KiB
24Accepted287ms121828 KiB
25Accepted234ms122120 KiB
26Accepted287ms122272 KiB
27Accepted234ms122324 KiB
28Accepted287ms122284 KiB
29Accepted238ms122336 KiB
30Accepted233ms122312 KiB
31Accepted293ms122568 KiB
32Accepted238ms124384 KiB
33Accepted240ms126276 KiB
34Accepted305ms131508 KiB
35Accepted231ms122756 KiB
36Accepted277ms122360 KiB
37Accepted273ms122012 KiB
38Accepted268ms121448 KiB
39Accepted221ms121540 KiB
40Accepted216ms121004 KiB