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. mysql判断是否等于某个值

    需要在其后面加.toString()方法,其中 flag为字符串类型

  2. mysql查询sql中检索条件为大批量数据时处理

    当userIdArr数组值为大批量时,应如此优化代码实现

  3. 微信小程序首页index.js获取不到app.js中动态设置的globalData的原因以及解决方法

    前段时间开发了一款微信小程序,运行了也几个月了,在index.js中的onLoad生命周期里获取app.js中onLaunch生命周期中在接口里动态设置的globalData一直没有问题,结果昨天就获 ...

  4. STL_算法_查找算法(find、find_if)

    C++ Primer 学习中. .. 简单记录下我的学习过程 (代码为主) find . find_if /**********************线性查找O(n) find(); find_if ...

  5. wpf 模板选择器DataTemplateSelector及动态绑定使用教程

    其实也说不上算是教程了,只是把自己学习的代码拿出来分享一下,同时方便以后遇到类似问题的时候翻一下.MSDN里如是说:通常,如果有多个 DataTemplate 可用于同一类型的对象,并且您希望根据每个 ...

  6. 【SVN版本回退】

    [SVN版本回退]根据想要回退的内容,然后选择revert to this revision或者revert changes from this revision.下面引用过来:譬如有个文件,有十个版 ...

  7. 导入EXCEL 时间数据为小数 问题

    同事在做将EXCEL导入数据库功能时发现一个奇怪的问题:在EXCEL中,有一列数据明明呈现出时间格式,比如:18:35,但导到数据库中,居然一串长长的小数:0.7743055555555556,我靠, ...

  8. wince c# 创建桌面快捷方式 .

    static void Create() { string PathGPRS = System.IO.Path.GetDirectoryName(System.Reflection.Assembly. ...

  9. Hibernate的检索策略和优化

    一.检索策略概述 当我们实现了一对多或者多对多的映射后,在检索数据库时需要注意两个问题: 1.使用尽可能小的内存:当 Hibernate 从数据库中加载一个客户信息时, 如果同时加载所有关联这个客户的 ...

  10. 九度OJ 1141:Financial Management (财务管理) (平均数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:939 解决:489 题目描述: Larry graduated this year and finally has a job. He's ...