【BZOJ4269】再见Xor

原创 2015年11月17日 15:57:41

Description

给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值。
Input

第一行一个正整数N。
接下来一行N个非负整数。
Output

一行,包含两个数,最大值和次大值。
Sample Input

3

3 5 6
Sample Output

6 5

HINT

100% : N <= 100000, 保证N个数不全是0,而且在int范围内

Source

裸的线性基.我之前没学过所以来感受一下.
求完线性基,最大值就是异或和,次大值就把最小的那个再异或一遍除掉.

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define P 10086
#define MAXN 100010
#define GET (ch>='0'&&ch<='9')
using namespace std;
int n,a[MAXN];
int ans;
void in(int &x)
{
    char ch=getchar();x=0;
    while (!GET)    ch=getchar();
    while (GET) x=x*10+ch-'0',ch=getchar();
}
int gauss()
{
    int i,j,k=0;
    for (i=1<<30;i;i>>=1)
    {
        for (j=k+1;j<=n;j++)
            if (a[j]&i) break;
        if (j==n+1) continue;swap(a[++k],a[j]);
        for (j=1;j<=n;j++)
            if (j!=k&&(a[j]&i)) a[j]^=a[k];
    }
    return k;
}
int main()
{
    in(n);int size;
    for (int i=1;i<=n;i++)  in(a[i]);
    size=gauss();
    for (int i=1;i<=size;i++)   ans^=a[i];
    printf("%d %d\n",ans,ans^a[size]);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

HDOJ3594-仙人掌图的判断

/* 题意:给出一个有向图,判断该图是否为仙人掌图. 这里有一个不错的关于仙人掌图性质分析文章: pdf:http://files.cnblogs.com/ambition/cactus_so...

UVA 11992 Fast Matrix Operations

线段树区间修改,懒标记传递。 #include #define INF 0x3f3f3f3f #define lson o

【BZOJ】【P2115】【Wc2011】【Xor】【题解】【线性基】

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2115 自行百度:"莫涛 xor" 还有发现了一个非常简单的线性基求法 http://s...

BZOJ 2844(albus就是要第一个出场-gauss_xor方程组)

题目大意:有n个数的序列A,每次选出A的一个子集(可以为空集)进行xor,这样就得到2^n个数,将其升序排序得到数列B,求k在B出现的最小位置?利用gauss_xor消元,统计独立元个数计算 注意 ...

BZOJ 2115|WC 2010|Xor|高斯消元

无向联通图上的路径使其边权Xor和最大。考虑一个路径,发现其由树边和非树边组成(SAM证明线性的时候也用到了这个) 树边可以很容易地xor出来啦,非树边呢? 由于非树边的两端点总在树上,因此1条非...

[BZOJ1954]Pku3764 The xor-longest Path

Trie 异或
  • hbhcy98
  • hbhcy98
  • 2016年04月02日 22:47
  • 154

BZOJ2115 Xor

题意:找一条从1-n的路径使路径上的异或和最大。。。 高斯消元。。。。 如果当前走的这条路径上走不到n,也就是说后面还要走回来,也就是同样相同的数走了两遍,所以异或出来的值就是位0,能够改变异或和...

bzoj 4245 OR-XOR(按位异或贪心)

题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4245 题意:求n个数分成连续m段,每段取异或最后所有段或值的最小值 题解:经过这几道...

BZOJ 2115: [Wc2011] Xor

贪心求线性基+找环挂题解:http://www.cnblogs.com/BLADEVIL/p/3484486.html任何复杂环一定能由简单环异或得到任何一条1~n的路径的异或值都可以通过其他的1~n...

BZOJ 2337 [HNOI2011] XOR和路径

期望+高斯消元
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【BZOJ4269】再见Xor
举报原因:
原因补充:

(最多只允许输入30个字)