【BZOJ 4269】再见Xor
zky学长提供的线性基求法:
- for(int i=1;i<=n;i++)
- for(int j=64;j>=1;j--)
- {
- if(a[i]>>(j-1)&1)
- {
- if(!lb[j]){lb[j]=a[i];break;}
- else a[i]^=lb[j];
- }
- }
Gauss消元求线性基的方法:
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #define read(x) x=getint()
- using namespace std;
- const int N = 100003;
- int getint() {
- int k = 0, fh = 1; char c = getchar();
- for(; c < '0' || c > '9'; c = getchar())
- if (c == '-') fh = -1;
- for(; c >= '0' && c <= '9'; c = getchar())
- k = (k << 1) + (k << 3) + c - '0';
- return k * fh;
- }
- int n, a[N];
- void Gauss() {
- int tmp = 0, i;
- for(int j = 1 << 30; j; j >>= 1) {
- for(i = tmp + 1; i <= n; ++i)
- if (a[i] & j)
- break;
- if (i > n) continue;
- swap(a[++tmp], a[i]);
- for(i = 1; i <= n; ++i)
- if (i != tmp && a[i] & j)
- a[i] ^= a[tmp];
- }
- n = tmp;
- }
- int main() {
- read(n);
- for(int i = 1; i <= n; ++i)
- read(a[i]);
- Gauss();
- int ans = 0;
- for(int i = 1; i <= n ;++i)
- ans ^= a[i];
- printf("%d %d\n", ans, ans ^ a[n]);
- return 0;
- }
没了
【BZOJ 4269】再见Xor的更多相关文章
- BZOJ 4269: 再见Xor [高斯消元 线性基]
4269: 再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. 我太愚蠢了连数组开小了以及$2^{ ...
- BZOJ 4269 再见Xor
线性基. 求次大值就是再异或一个线性基好了. #include<iostream> #include<cstdio> #include<cstring> #defi ...
- BZOJ 4269: 再见Xor 线性基+贪心
Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行一个正整数N. 接下来一行N个非负整数. ...
- 4269: 再见Xor
4269: 再见Xor 链接 分析: 和SGU 275唯一不同的就是需要求出次小值,那么异或出最大值的所有元素中,找到最小的,去除即可. 代码: #include<bits/stdc++.h&g ...
- 【BZOJ-4269】再见Xor 高斯消元 + 线性基
4269: 再见Xor Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 131 Solved: 81[Submit][Status][Discuss] ...
- 【bzoj4296】再见Xor
4269: 再见Xor Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 176 Solved: 107[Submit][Status][Discuss ...
- 【BZOJ4269】再见Xor 高斯消元
[BZOJ4269]再见Xor Description 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. Input 第一行一个正整 ...
- 【概率DP/高斯消元】BZOJ 2337:[HNOI2011]XOR和路径
2337: [HNOI2011]XOR和路径 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 682 Solved: 384[Submit][Stat ...
- bzoj 2115: [Wc2011] Xor xor高斯消元
2115: [Wc2011] Xor Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 797 Solved: 375[Submit][Status] ...
随机推荐
- 求最大边/最小边的比值最小的路径 codevs 1001 舒适的路线
codevs 1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Z小镇是一个景色宜人 ...
- 第15章 设备无关位图_15.2 显示和打印DIB
15.2.1 探究DIB (1)DIB文件的结构 整个文件 紧凑DIB(整个文件除文件头) 文件头(File Header) 信息头(Information Header) 信息头(Informati ...
- oracle:sql函数
Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...
- AC日记——大小写字母互换 openjudge 1.7 14
14:大小写字母互换 总时间限制: 1000ms 内存限制: 65536kB 描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母. 输入 输入一行:待互换的字符串 ...
- 移动前端UI选择
移动前端UI选择 目录 三.SUI Mobile 一.jQuery Mobile jQuery Mobile 是jQuery在移动设备上的版本,做为主要针对移动设备的框架来说,它提供一个移动设备平 ...
- AS开发者转LAYA一周心得
LAYA太神奇了,你可以完全不会H5,会AS3就能开发出H5游戏
- PHPstudy和ecshop的安装和使用
PHPstudy和ecshop: phpStudy是一个PHP调试环境的程序集成包. 该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装, ...
- 在Eclipse彻底删除一个项目
1. 先必须关闭项目 2. 再从workspace中把项目删除
- asp.net webapi支持跨域
1.Install-Package Microsoft.AspNet.WebApi.Cors 2. using System.Web.Http; namespace WebService { ...
- 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation
今日编译apache时出错: #./configure --prefix……检查编辑环境时出现: checking for APR... no configure: error: APR not fo ...