玄关模板求调
查看原帖
玄关模板求调
1112376
违规用户名fU^%v6mL楼主2024/10/15 11:26

这题样例没过。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+1;
int n,m;
int trie[N][2],idx;
void insert(int x,int s){
	for(int i=(1ll<<32);i;i>>=1){
		int c=i&s;
		if(!trie[x][c])
			trie[x][c]=++idx;
		x=trie[x][c];
	}
}
int search(int x,int s){
	int ans=0;
	for(int i=(1ll<<32);i;i>>=1){
		int c=i&s;
		if(trie[x][!c]){
			ans+=i; 
			x=trie[x][!c];
		}else 
			x=trie[x][c];
	}
	return ans;
}
signed main(){
	cin>>n>>m;
	for(int i=1;i<=n;++i){
		int s;
		cin>>s;
		insert(0,s);
	}
	while(m--){
		int s;
		cin>>s;
		cout<<search(0,s)<<endl;
	}
	return 0;
}
2024/10/15 11:26
加载中...