zky学长提供的线性基求法:

  1. for(int i=1;i<=n;i++)
  2. for(int j=64;j>=1;j--)
  3. {
  4. if(a[i]>>(j-1)&1)
  5. {
  6. if(!lb[j]){lb[j]=a[i];break;}
  7. else a[i]^=lb[j];
  8. }
  9. }

Gauss消元求线性基的方法:

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #define read(x) x=getint()
  5. using namespace std;
  6. const int N = 100003;
  7. int getint() {
  8. int k = 0, fh = 1; char c = getchar();
  9. for(; c < '0' || c > '9'; c = getchar())
  10. if (c == '-') fh = -1;
  11. for(; c >= '0' && c <= '9'; c = getchar())
  12. k = (k << 1) + (k << 3) + c - '0';
  13. return k * fh;
  14. }
  15. int n, a[N];
  16. void Gauss() {
  17. int tmp = 0, i;
  18. for(int j = 1 << 30; j; j >>= 1) {
  19. for(i = tmp + 1; i <= n; ++i)
  20. if (a[i] & j)
  21. break;
  22. if (i > n) continue;
  23. swap(a[++tmp], a[i]);
  24. for(i = 1; i <= n; ++i)
  25. if (i != tmp && a[i] & j)
  26. a[i] ^= a[tmp];
  27. }
  28. n = tmp;
  29. }
  30. int main() {
  31. read(n);
  32. for(int i = 1; i <= n; ++i)
  33. read(a[i]);
  34. Gauss();
  35. int ans = 0;
  36. for(int i = 1; i <= n ;++i)
  37. ans ^= a[i];
  38. printf("%d %d\n", ans, ans ^ a[n]);
  39. return 0;
  40. }

没了

【BZOJ 4269】再见Xor的更多相关文章

  1. BZOJ 4269: 再见Xor [高斯消元 线性基]

    4269: 再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. 我太愚蠢了连数组开小了以及$2^{ ...

  2. BZOJ 4269 再见Xor

    线性基. 求次大值就是再异或一个线性基好了. #include<iostream> #include<cstdio> #include<cstring> #defi ...

  3. BZOJ 4269: 再见Xor 线性基+贪心

    Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行一个正整数N. 接下来一行N个非负整数. ...

  4. 4269: 再见Xor

    4269: 再见Xor 链接 分析: 和SGU 275唯一不同的就是需要求出次小值,那么异或出最大值的所有元素中,找到最小的,去除即可. 代码: #include<bits/stdc++.h&g ...

  5. 【BZOJ-4269】再见Xor 高斯消元 + 线性基

    4269: 再见Xor Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 131  Solved: 81[Submit][Status][Discuss] ...

  6. 【bzoj4296】再见Xor

    4269: 再见Xor Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 176  Solved: 107[Submit][Status][Discuss ...

  7. 【BZOJ4269】再见Xor 高斯消元

    [BZOJ4269]再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行一个正整 ...

  8. 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径

    2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 682  Solved: 384[Submit][Stat ...

  9. bzoj 2115: [Wc2011] Xor xor高斯消元

    2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 797  Solved: 375[Submit][Status] ...

随机推荐

  1. 求最大边/最小边的比值最小的路径 codevs 1001 舒适的路线

    codevs 1001 舒适的路线 2006年  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description Z小镇是一个景色宜人 ...

  2. 第15章 设备无关位图_15.2 显示和打印DIB

    15.2.1 探究DIB (1)DIB文件的结构 整个文件 紧凑DIB(整个文件除文件头) 文件头(File Header) 信息头(Information Header) 信息头(Informati ...

  3. oracle:sql函数

    Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...

  4. AC日记——大小写字母互换 openjudge 1.7 14

    14:大小写字母互换 总时间限制:  1000ms 内存限制:  65536kB 描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母. 输入 输入一行:待互换的字符串 ...

  5. 移动前端UI选择

    移动前端UI选择 目录 三.SUI Mobile   一.jQuery Mobile jQuery Mobile 是jQuery在移动设备上的版本,做为主要针对移动设备的框架来说,它提供一个移动设备平 ...

  6. AS开发者转LAYA一周心得

    LAYA太神奇了,你可以完全不会H5,会AS3就能开发出H5游戏

  7. PHPstudy和ecshop的安装和使用

    PHPstudy和ecshop: phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装, ...

  8. 在Eclipse彻底删除一个项目

    1. 先必须关闭项目 2. 再从workspace中把项目删除

  9. asp.net webapi支持跨域

    1.Install-Package Microsoft.AspNet.WebApi.Cors 2. using System.Web.Http; namespace WebService {     ...

  10. 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation

    今日编译apache时出错: #./configure --prefix……检查编辑环境时出现: checking for APR... no configure: error: APR not fo ...