https://ac.nowcoder.com/acm/problem/17968

下面是错误的做法,因为题目要求必须使用x,而y在check的时候不一定用到等价于x的线性基来构成。

正确的做法是直接check(x^y),这样y已经使用了x,再看看能不能经过其他数表示。

因为异或是交换群。

#include<bits/stdc++.h>
using namespace std;
#define ll long long const int MN=34;
ll a[MN+1],tmp[MN+1];
ll copya[MN+1]; bool flag;//该线性基能否表示0 //尝试向线性基中插入一个值
void ins(ll x,ll *lb) {
for(int i=MN; ~i; i--)
if(x&(1ll<<i))
if(!lb[i]) {
lb[i]=x;
return;
} else
x^=lb[i];
flag=true;
} //判断该线性基能否表示x
bool check(ll x,ll *lb) {
if(x==0)
return flag;
for(int i=MN; ~i; i--)
if(x&(1ll<<i))
if(!lb[i])
return false;
else
x^=lb[i];
return true;
} int main() {
int n;
scanf("%d",&n);
ll x,y;
for(int i=1; i<=n; i++)
scanf("%lld",&x),ins(x,a); int q;
scanf("%d",&q);
while(q--) {
scanf("%lld%lld",&x,&y);
for(int i=0; i<=MN; i++) {
copya[i]=a[i];
}
ins(x,copya);
if(check(y,copya)) {
puts("YES");
} else {
puts("NO");
}
}
return 0;
}

牛客 - 17968 - xor序列 - 线性基的更多相关文章

  1. 牛客练习赛26—D xor序列 —线性基

    这是我第一次写关于线性基的题目.其实这题很好理解,先把给出的数能异或出的值给存在p数组里面,p[i]代表着该异或出的数的最高位为第i位且为1. 求出来后,再把x,y处理下,然后直接一位一位的判断是否为 ...

  2. Nowcoder 练习赛26 D xor序列 ( 线性基 )

    题目链接 题意 : 中文题.点链接 分析 : 对于给定的 X 和 Y 假设存在一个 Z 使得 X (xor) Z = Y 做一个变形 X (xor) Z (xor) Y = 0 X (xor) Y = ...

  3. 【BZOJ2115】Xor(线性基)

    [BZOJ2115]Xor(线性基) 题面 BZOJ Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si ...

  4. 2019牛客暑期多校训练营(第一场):XOR(线性基)

    题意:给定数组,求所有异或起来为0的集和的大小之和. 思路:由于是集合大小,我们换成考虑每个元素在多少个集合里有贡献. 先生成线性基. 对于没有插入线性基的元素x,贡献是2^(N-base-1),因为 ...

  5. 2019牛客多校第四场B xor(线性基求交)题解

    题意: 传送门 给\(n\)个集合,每个集合有一些数.给出\(m\)个询问,再给出\(l\)和\(r\)和一个数\(v\),问你任意的\(i \in[l,r]\)的集合,能不能找出子集异或为\(v\) ...

  6. 专题--XOR之线性基

    没想到xor居然和线性代数有着那么有趣的联系哎 n个数可以转化为一个上三角矩阵  (线性无关?!) 链接:https://www.nowcoder.com/acm/contest/180/D来源:牛客 ...

  7. 【HDU 3949】 XOR (线性基,高斯消元)

    XOR Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. Codeforces 959F Mahmoud and Ehab and yet another xor task 线性基 (看题解)

    Mahmoud and Ehab and yet another xor task 存在的元素的方案数都是一样的, 啊, 我好菜啊. 离线之后用线性基取check存不存在,然后计算答案. #inclu ...

  9. 2115: [Wc2011] Xor (线性基+dfs)

    2115: [Wc2011] Xor Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 5714  Solved: 2420 题目链接:https://w ...

随机推荐

  1. postgresql的show databases、show tables、describe table操作

    1.相当与mysql的show databases; select datname from pg_database; 2.相当于mysql的show tables; SELECT table_nam ...

  2. Juce源代码分析(九)应用程序基类ApplicationBase

    在前面的几篇文章,分析的都是Juce库里面Core模块的内存部分,除了骨灰级C++爱好者之外,貌似大家对这些都不是非常感兴趣.相信大家更想知道Juce是怎么用于产品开发,而对于它的构成不是非常感兴趣. ...

  3. Python笔记——基本数据结构:列表、元组及字典

    转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...

  4. 九度OJ 1090:路径打印 (树、DFS)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1704 解决:314 题目描述: 给你一串路径,譬如: a\b\c a\d\e b\cst d\ 你把这些路径中蕴含的目录结构给画出来,子目 ...

  5. build a real-time analytics dashboard to visualize the number of orders getting shipped every minute to improve the performance of their logistics for an e-commerce portal

    https://cloudxlab.com/blog/real-time-analytics-dashboard-with-apache-spark-kafka/

  6. Decorator Pattern

    1.Decorator 模式通过组合的方式提供了一种给类增加职责(操作)的方法. 2.Decorator模式结构图 3.实现 #ifndef _DECORATOR_H_ #define _DECORA ...

  7. selenium2 python范例

    selenium2 python范例 下面脚本的功能是:打开谷歌浏览器-->跳转到某个网址-->输入用户名和密码登录-->读取页面内的数据并求和. # coding=utf-8 #编 ...

  8. 如何在时间复杂度为O(n)空间复杂度为O(1)的情况下完成链表的逆置

    问题如题目,首先分析,链表的反转的空间复杂度如果为常数级,那么不可能完成从堆中申请数据来完成链表的反转工作,所以问题就转化为了如何将原链表修改/拆解为逆置的链表: 函数形式假定如下  void Inv ...

  9. 使用eclipse的SVN连接码云

    码云配置: 码云的项目上,启用SVN访问 eclipse的配置,不配置这个会报错

  10. BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1619 题意: 给你一个n*m的地形图,位置(x,y)的海拔为h[x][y]. 一个山顶的定 ...