106502024-04-07 18:24:18111XORfa visszatércpp17Futási hiba 28/100513ms5104 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;
	vector<set<int>>p(N+1);
	multiset<int>ans;
	ans.insert(0);
	while(Q--){
		int x;
		cin>>x;
		if(s.count(x)){
			s.erase(x);
			for(int y:p[x]){
				p[y].erase(x);
				ans.erase(ans.find(v[x]^v[y]));
				if(s.size()>1){
					int z=y;
					for(int a:s){
						if((v[y]^v[a])>(v[y]^v[z])){
							z=a;
						}
					}
					if(!p[y].count(z)){
						ans.insert(v[y]^v[z]);
						p[y].insert(z);
						p[z].insert(y);
					}
				}
			}
			p[x].clear();
		}
		else{
			if(!s.empty()){
				int y=x;
				for(int a:s){
					if((v[x]^v[a])>(v[x]^v[y])){
						y=a;
					}
				}
				if(!p[x].count(y)){
					ans.insert(v[x]^v[y]);
					p[x].insert(y);
					p[y].insert(x);
				}
			}
			s.insert(x);
		}
		// for(int i:ans)cout<<i<<' ';cout<<'\n';
		cout<<*--ans.end()<<'\n';
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva3ms2016 KiB
subtask211/11
3Elfogadva3ms2380 KiB
4Elfogadva3ms2584 KiB
5Elfogadva3ms2548 KiB
6Elfogadva3ms2808 KiB
7Elfogadva3ms3136 KiB
8Elfogadva3ms2976 KiB
9Elfogadva3ms3228 KiB
10Elfogadva3ms3576 KiB
11Elfogadva3ms3636 KiB
12Elfogadva3ms3480 KiB
13Elfogadva3ms3804 KiB
subtask30/13
14Futási hiba3ms3788 KiB
15Futási hiba3ms3944 KiB
16Futási hiba3ms4032 KiB
17Futási hiba3ms3928 KiB
18Futási hiba2ms4036 KiB
19Futási hiba2ms4028 KiB
20Futási hiba2ms3924 KiB
21Futási hiba2ms3924 KiB
22Futási hiba3ms4152 KiB
23Futási hiba2ms4236 KiB
subtask417/17
24Elfogadva6ms4604 KiB
25Elfogadva4ms4332 KiB
26Elfogadva8ms4540 KiB
27Elfogadva8ms4664 KiB
28Elfogadva9ms5000 KiB
29Elfogadva6ms4724 KiB
30Elfogadva7ms4648 KiB
31Elfogadva7ms4652 KiB
32Elfogadva508ms4896 KiB
33Elfogadva513ms4852 KiB
34Elfogadva513ms4864 KiB
35Elfogadva513ms5104 KiB
subtask50/59
36Futási hiba2ms4528 KiB
37Futási hiba3ms4528 KiB
38Futási hiba3ms4772 KiB
39Futási hiba2ms4760 KiB
40Futási hiba2ms4888 KiB
41Futási hiba2ms4636 KiB
42Futási hiba2ms4528 KiB
43Futási hiba2ms4624 KiB
44Futási hiba2ms4624 KiB
45Futási hiba2ms4464 KiB
46Futási hiba2ms4564 KiB
47Futási hiba2ms4568 KiB
48Futási hiba2ms4560 KiB
49Futási hiba3ms4564 KiB