• 数据结构基础


     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<cstdlib>
     5 using namespace std;
     6 
     7 int tom,root,wi;
     8 typedef struct node
     9 {
    10     int a[2];
    11     int i;
    12     int num;
    13 }Tril;
    14 Tril f[100003<<5];
    15 
    16 void insert(int x,int rt,int wz)
    17 {
    18     int i,k;
    19     for(i=21;i>=0;i--)
    20     {
    21         k=( (1<<i)&x )? 1:0;
    22         if(f[rt].a[k]!=-1)
    23             f[rt].a[k]=root++;
    24         rt=f[rt].a[k];
    25     }
    26     f[rt].i=wz;
    27     f[rt].num=x;
    28 }
    29 void query(int x,int rt,int wz)
    30 {
    31     int i,k,cur;
    32     for(i=21;i>=0;i--)
    33     {
    34         k=( (1<<i)&x )? 1:0;
    35         if(f[rt].a[k^1]!=-1)
    36             rt=f[rt].a[k^1];
    37         else rt=f[rt].a[k];
    38     }
    39     cur=f[rt].num;
    40     if( (cur^x)>tom )
    41     {
    42         tom=cur^x;
    43         wi=i;
    44     }
    45 }
    46 
    47 int main()
    48 {
    49     int T,n;
    50     int i,hxl,x;
    51     scanf("%d",&T);
    52     while(T--)
    53     {
    54         scanf("%d",&n);
    55         hxl=0;
    56         tom=0;
    57         root=1;
    58         memset(f,-1,sizeof(Tril)*((n<<5)+1));
    59         for(i=1;i<=n;i++)
    60         {
    61             scanf("%d",&x);
    62             hxl=hxl^x;
    63             query(hxl,1,i);
    64             insert(hxl,1,i);
    65         }
    66         printf("%d
    ",tom);
    67     }
    68     return 0;
    69 }
  • 相关阅读:
    Oracle修改字段类型
    JS解析JSON字符串
    C#Json转DataTable
    解决前台和后台传值出现中文乱码
    Oracle 存储过程简单语法
    EasyUI 冻结列
    EasyUI 数据网格行过滤
    windows计划任务
    C#日志文件
    bat 读取 ini 配置文件
  • 原文地址:https://www.cnblogs.com/tom987690183/p/3431464.html
Copyright © 2020-2023  润新知