1 条题解

  • 0
    @ 2025-10-8 16:56:07

    F07【模板】01Trie 最大异或对

    #include<bits/stdc++.h>
    using namespace std;
    const int N=110000;
    int cnt,ch[N*31][2],a[N];
    void ins(int x)
    {
    	int p=0;
    	for(int i=30;i>=0;i--)
    	{
    		int j=(x>>i)&1;
    		if(!ch[p][j])ch[p][j]=++cnt;
    		p=ch[p][j];
    	}
    }
    int query(int x)
    {
    	int p=0,ret=0;
    	for(int i=30;i>=0;i--)
    	{
    		int j=(x>>i)&1;
    		if(ch[p][!j])p=ch[p][!j],ret+=(1<<i);
    		else         p=ch[p][j];
    	}
    	return ret;
    }
    int main()
    {
    	int n;scanf("%d",&n);
    	cnt=0;memset(ch,0,sizeof(ch));
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%d",&a[i]);
    		ins(a[i]); 
    	}
    	int ans=0;
    	for(int i=1;i<=n;i++)
    	{
    		ans=max(ans,query(a[i]));
    	}
    	printf("%d\n",ans);
    	return 0;
    }
    
    • 1

    F07【模板】最大异或对 The XOR Largest Pair

    信息

    ID
    1282
    时间
    1000ms
    内存
    64MiB
    难度
    7
    标签
    递交数
    221
    已通过
    54
    上传者