CodeForces 252A-Little Xor

亦或性质考察

Posted by Myy on November 4, 2015

题目出处

CodeForces 252A

题目大意

给出n个数,取其中连续的一段算亦或值,求结果的最大值.

题目分析

没什么难点,注意到亦或的可交换性,只需把num[n]预处理成从第一个元素到第n个元素的亦或结果即可.

测试样例

Input

1
2
5
1 2 1 1 2

Output

1
3

Input

1
2
4
4 2 4 8

Output

1
14

AC 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<algorithm>
#include<cmath>
using namespace std;
int num[105];
int main()
{
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
                scanf("%d",num+i);
                num[i]^=num[i-1];
        }
        int nmax=0;
        for(int i=0;i<n;i++)
        {
                for(int j=i+1;j<=n;j++)
                {
                        nmax=max(nmax,num[j]^num[i]);
                }
        }
        printf("%d\n",nmax);
        return 0;
}