牛客练习赛26—D xor序列 —线性基
这是我第一次写关于线性基的题目。其实这题很好理解,先把给出的数能异或出的值给存在p数组里面,p[i]代表着该异或出的数的最高位为第i位且为1. 求出来后,再把x,y处理下,然后直接一位一位的判断是否为1,如果为1,就找到表中该位为最高位且为1的数来和它异或(这样因为两个数前面都是0可以不用考虑前面数的影响),异或到最后,如果剩下的为0,则可以异或出答案,反之亦然。
在写的时候,不管怎么调都发现是输出no,找了半天,才发现定义的x,y都是int型 导致在向左移动的时候溢出范围,然后出错QAQ。 真是菜的真实
#include<iostream>
using namespace std;
long long p[]={};
void f(long long k)
{
for(int i=;i>=;i--)
{
if((k>>i)&)
{
if(!p[i])
{
p[i]=k;
break;
}
else k=k^p[i];
}
}
}
int main()
{
long long x,y,i,j,k,l,ans,n,m;
cin>>n;
for(j=;j<n;j++)
{
cin>>k;
f(k);
}
cin>>m;
while(m--)
{
cin>>x>>y;
ans=x^y;
//cout<<ans<<endl;
for(int i=;i>=;i--)
{
if((ans>>i)&)
{
//cout<<"11111"<<endl;
if(p[i]==)
{
//cout<<"222"<<endl;
//cout<<p[i]<<endl;
// cout<<i<<endl;
break;
}
else ans=ans^p[i];//,cout<<"333"<<endl;
}
}
if(ans==) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
//cout<<ans<<endl;
//for(int i=9;i>=0;i--) cout<<p[i]<<endl;
}
}
参考博客>>https://blog.csdn.net/Mr_Treeeee/article/details/82559654<<
牛客练习赛26—D xor序列 —线性基的更多相关文章
- 牛客练习赛26 D xor序列 (线性基)
链接:https://ac.nowcoder.com/acm/contest/180/D 来源:牛客网 xor序列 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他 ...
- Nowcoder 练习赛26 D xor序列 ( 线性基 )
题目链接 题意 : 中文题.点链接 分析 : 对于给定的 X 和 Y 假设存在一个 Z 使得 X (xor) Z = Y 做一个变形 X (xor) Z (xor) Y = 0 X (xor) Y = ...
- 牛客练习赛26:D-xor序列(线性基)
链接:牛客练习赛26:D-xor序列(线性基) 题意:小a有n个数,他提出了一个很有意思的问题:他想知道对于任意的x, y,能否将x与这n个数中的任意多个数异或任意多次后变为y 题解:线性基 #inc ...
- 牛客练习赛26 xor序列
xor序列 思路:线性基 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include< ...
- 牛客 - 17968 - xor序列 - 线性基
https://ac.nowcoder.com/acm/problem/17968 下面是错误的做法,因为题目要求必须使用x,而y在check的时候不一定用到等价于x的线性基来构成. 正确的做法是直接 ...
- 牛客练习赛26 E-树上路径 (树链剖分+线段树)
链接:https://ac.nowcoder.com/acm/contest/180/E 来源:牛客网 树上路径 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语 ...
- 牛客练习赛 26 C题 城市规划【贪心】
<题目链接> 题目描述 小a的国家里有n个城市,其中第i和第i - 1个城市之间有无向道路连接,特殊的,第1个城市仅与第2个城市相连为了减轻道路维护负担,城市规划局局长MXT给出了m个要求 ...
- 牛客练习赛70 B.拼凑 (序列自动机)
题意:有一个模板串,有\(T\)个字符串,从字符串中找到某个子串,使得这个子串中的子序列包含模板串,求最短的子串的长度. 题解:找子序列,很容易想到序列自动机,根据序列自动机的原理,我们一定可以确保除 ...
- 牛客练习赛 26 B题 烟花【DP】(经典)
<题目链接> 题目描述 小a有个烟花,每个烟花代表着互不相同的颜色,对于第个烟花,它有的概率点燃,现在小a要去点燃它们,他想知道产生颜色的期望个数 及 产生恰好产生种颜色的概率 输入描述: ...
随机推荐
- StreamSocket
转载自:http://blog.csdn.net/yuanguozhengjust/article/details/19175085 StreamSocket的基本流程和一般的Socket通信操作类似 ...
- padding 和 float属性
padding = {上内,右内,下内,左内} 内边距 padding:"10, 5,15,20" float = "true" 控件固定住.
- ajax原生
let xml; let url="http://localhost:3333"; let data={name:'lishishi',age:'22'} if(window.XM ...
- RunExecuteFile
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- PAT甲级1135 Is It A Red-Black Tree?【dfs】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805346063728640 题意: 给定一棵二叉搜索树的先序遍历结 ...
- [Database.System.Concepts(6th.Edition.2010)].Abraham.Silberschatz. Ch8学习笔记
Database Ch8.relational design 8.1 features of good design 8.1.1 larger alternatives why design is g ...
- VAE (variational autoencoder)
https://www.zhihu.com/question/41490383/answer/103006793 自编码是一种表示学习的技术,是deep learning的核心问题 让输入等于输出,取 ...
- IE、360浏览器select属性onchange遇到的坑
在网页头部定义js代码 <script type="text/javascript"> function gradeChange(e){ var selectId = ...
- Selenium 2(Webdriver)
如何用webdriver打开一个浏览器,我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器,很多新的特性都会在firefox中体现.但是做页面的测试,启 ...
- python框架之Django(11)-中间件
介绍 在django中,中间件其实就是一个类,在一个请求到来和这个请求结束之前,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 M ...