【BZOJ 4269】再见Xor
2016-04-29 07:48
295 查看
zky学长提供的线性基求法:
Gauss消元求线性基的方法:
没了
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 ; 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 ); return 0; }
没了
相关文章推荐
- ios(CoreAnimation核心动画 ) CABasicAnimation动画与锚点
- 对石家庄铁道大学网站的UI分析
- LeetCode 004 Median of Two Sorted Arrays *
- 创业的第一百七十七天
- Elasticsearch 聚合的测试数据
- wamp开发环境搭建
- [BFS]马的遍历
- Android项目结构与源码分析,解开其中秘密
- BZOJ4543/BZOJ3522 [POI2014]Hotel加强版
- Android-重新包装Toast,自定义背景
- Xcode 插件失效
- git 专题
- Service
- JavaScript对象
- Elasticsearch 聚合中的重要概念 - Buckets(桶)及Metrics(指标)
- 申请搜狐自媒体心得与使用效果之谈
- 职场中的天龙八部——北漂18年(53)
- 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)
- 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)
- 看 nova-scheduler 如何选择计算节点 - 每天5分钟玩转 OpenStack(27)