【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]);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

[bzoj4269]再见xor

题目大意n个数任取进行异或,求最大值与严格次大值线性基第一次写线性基www 弄出线性基后可以得到最大值。 接下来我们从小到大枚举次大值在哪一个位与最大值不一样,比如在i位,那么比i位高的要与最大值...
  • WerKeyTom_FTD
  • WerKeyTom_FTD
  • 2017年02月16日 16:32
  • 356

BZOJ 4269 再见Xor 高斯消元

题目大意:给定nn个数,求能异或出来的最大值和次大值是谁往BZ上传傻逼题…… 高斯消元求线性基,都异或起来是最大值,再异或一下最小的线性基就是次大值#include #include #incl...
  • PoPoQQQ
  • PoPoQQQ
  • 2015年09月23日 15:13
  • 1829

bzoj 4269 再见Xor

线性基
  • chai_jing
  • chai_jing
  • 2017年06月19日 22:07
  • 109

BZOJ 4269: 再见Xor|高斯消元

高斯消元搞一搞,搞出线性基 然后就wa了,搞得我莫名其妙去查题解,然后发现和PoPoQQQ大爷写的一模一样,smg?感谢bz提供数据,终于发现错误 用高斯消元搞出线性基,最大的值就是全都抑或起来,...
  • ws_yzy
  • ws_yzy
  • 2016年02月03日 20:16
  • 455

【BZOJ4269】再见Xor

Description给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值。 Input第一行一个正整数N。 接下来一行N个非负整数。...
  • CreationAugust
  • CreationAugust
  • 2015年11月17日 15:57
  • 1908

BZOJ 4269 高斯消元求线性基

思路: 最大: 所有线性基异或一下 次大: 最大的异或一下最小的线性基 搞定~//By SiriusRen #include #include using namespace std; in...
  • qq_31785871
  • qq_31785871
  • 2017年01月03日 16:26
  • 212

[线性基] BZOJ 4269: 再见Xor

SolutionSolution 划水中。。迟早要完 显然要线性基。。 考虑求不严格的kk大。 对于基的每一个位置,因为其最高非零位就是位置标号,那看一下kk的这一位是否为11,看是否要异或上...
  • Vectorxj
  • Vectorxj
  • 2018年01月24日 16:14
  • 60

[BZOJ4269]再见Xor(高斯消元求线性基+贪心)

题目描述传送门题解不用long long就是爽… 网上其它题解说什么求出来线性基了之后所有的异或起来是最大值,除去最小的是次大值? 然而我感觉这样不大对啊…大概是求线性基的方法不同叭… 将线性基...
  • Clove_unique
  • Clove_unique
  • 2017年01月13日 23:30
  • 291

【bzoj4296】再见Xor

4269: 再见Xor Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 176  Solved: 107[Submit][Status][Discuss...
  • chty2018
  • chty2018
  • 2016年11月21日 13:05
  • 99

再见2017

再见了,2017! 希望我们都会以新的姿态迎接明天!
  • AmberWu
  • AmberWu
  • 2017年12月29日 14:18
  • 174
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【BZOJ4269】再见Xor
举报原因:
原因补充:

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