10646 2024. 04. 07 17:51:10 111 XORfa visszatér cpp17 Hibás válasz 0/100 490ms 6204 KiB
#include<bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,Q;
	cin>>N>>Q;
	if(N>1000||Q>1000)exit(1);
	vector<vector<pair<int,int>>>g(N+1);
	for(int i=0;i<N-1;i++){
		int a,b,w;
		cin>>a>>b>>w;
		g[a].emplace_back(b,w);
		g[b].emplace_back(a,w);
	}
	vector<int>v(N+1);
	auto dfs=[&](auto self,int i,int p,int x)->void{
		v[i]=x;
		for(auto[j,w]:g[i]){
			if(j==p){
				continue;
			}
			self(self,j,i,x^w);
		}
	};
	dfs(dfs,1,0,0);
	set<int>s;
	multiset<int>ans;
	vector<int>u(N+1);
	vector<vector<int>>p(N+1);
	while(Q--){
		int a;
		cin>>a;
		if(s.count(a)){
			s.erase(a);
			for(int x:p[a]){
				int y=x;
				for(int z:s){
					if((v[x]^v[z])>(v[x]^v[y])){
						y=z;
					}
				}
				ans.erase(ans.find(v[x]^v[u[x]]));
				u[x]=y;
				if(y!=x){
					p[y].push_back(x);
				}
				ans.insert(v[x]^v[y]);
			}
			p[a].clear();
		}
		else{
			int x=a;
			int y=x;
			for(int z:s){
				if((v[x]^v[z])>(v[x]^v[y])){
					y=z;
				}
			}
			ans.insert(v[x]^v[y]);
			u[x]=y;
			if(y!=x){
				p[y].push_back(x);
			}
			s.insert(x);
		}
		cout<<*--ans.end()<<'\n';
	}
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1828 KiB
2 Elfogadva 3ms 2056 KiB
subtask2 0/11
3 Hibás válasz 3ms 2248 KiB
4 Hibás válasz 3ms 2592 KiB
5 Hibás válasz 3ms 2548 KiB
6 Hibás válasz 3ms 2668 KiB
7 Hibás válasz 3ms 3036 KiB
8 Hibás válasz 3ms 3024 KiB
9 Hibás válasz 3ms 2984 KiB
10 Hibás válasz 3ms 3252 KiB
11 Hibás válasz 3ms 3580 KiB
12 Hibás válasz 3ms 3788 KiB
13 Hibás válasz 3ms 3864 KiB
subtask3 0/13
14 Futási hiba 2ms 3872 KiB
15 Futási hiba 2ms 3824 KiB
16 Futási hiba 2ms 3892 KiB
17 Futási hiba 2ms 3904 KiB
18 Futási hiba 2ms 3812 KiB
19 Futási hiba 3ms 3924 KiB
20 Futási hiba 3ms 4272 KiB
21 Futási hiba 3ms 4220 KiB
22 Futási hiba 3ms 4336 KiB
23 Futási hiba 3ms 4332 KiB
subtask4 0/17
24 Hibás válasz 6ms 4644 KiB
25 Hibás válasz 4ms 4572 KiB
26 Hibás válasz 7ms 4552 KiB
27 Hibás válasz 8ms 4584 KiB
28 Elfogadva 8ms 4844 KiB
29 Hibás válasz 4ms 4648 KiB
30 Hibás válasz 6ms 4652 KiB
31 Hibás válasz 6ms 4832 KiB
32 Hibás válasz 479ms 5940 KiB
33 Hibás válasz 490ms 5932 KiB
34 Hibás válasz 477ms 6196 KiB
35 Hibás válasz 476ms 6204 KiB
subtask5 0/59
36 Futási hiba 3ms 4756 KiB
37 Futási hiba 3ms 4844 KiB
38 Futási hiba 3ms 4656 KiB
39 Futási hiba 3ms 4648 KiB
40 Futási hiba 3ms 4652 KiB
41 Futási hiba 3ms 4752 KiB
42 Futási hiba 2ms 4648 KiB
43 Futási hiba 2ms 4752 KiB
44 Futási hiba 2ms 4752 KiB
45 Futási hiba 2ms 4752 KiB
46 Futási hiba 3ms 4644 KiB
47 Futási hiba 3ms 4752 KiB
48 Futási hiba 3ms 4856 KiB
49 Futási hiba 3ms 4548 KiB