51Nod 1577 异或凑数(线性基)
来源:互联网 发布:如何看待网络成瘾行为 编辑:程序博客网 时间:2024/05/18 03:26
Description
从左到右一共
一共
数据量比较大。
输入请用挂
int read(){ int ans=0; char last=' ',ch=getchar(); while(ch>='0' && ch<='9')ans=ans*10+ch-'0',ch=getchar(); return ans;}
输出请用
Input
单组测试数据。
第一行一个整数
第二行
第三行一个数
接下来
Output
Sample Input
5
1 1 2 4 6
3
1 2 1
2 4 8
3 5 7
Sample Output
YES
NO
NO
Solution
只要
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;namespace fastIO { #define BUF_SIZE 100000 //fread -> read bool IOerror=0; inline char nc() { static char buf[BUF_SIZE],*p1=buf+BUF_SIZE,*pend=buf+BUF_SIZE; if(p1==pend) { p1=buf; pend=buf+fread(buf,1,BUF_SIZE,stdin); if(pend==p1) { IOerror=1; return -1; } } return *p1++; } inline bool blank(char ch) { return ch==' '||ch=='\n'||ch=='\r'||ch=='\t'; } inline void read(int &x) { char ch; while(blank(ch=nc())); if(IOerror)return; for(x=ch-'0';(ch=nc())>='0'&&ch<='9';x=x*10+ch-'0'); } #undef BUF_SIZE};using namespace fastIO;typedef pair<int,int>P;const int maxn=500005;int n,m,a[maxn];struct node{ int val,pos; node(){}; node(int _val,int _pos){val=_val;pos=_pos;}}base[maxn][30];int main(){ read(n); for(int i=1;i<=n;i++)read(a[i]); for(int l=n;l>=1;l--) { for(int i=0;i<=29;i++)base[l][i]=base[l+1][i]; node temp=node(a[l],l); for(int i=29;i>=0;i--) if((temp.val>>i)&1) { if(!base[l][i].val) { base[l][i]=temp; break; } else { if(temp.pos<base[l][i].pos)swap(base[l][i],temp); temp.val^=base[l][i].val; } } } read(m); while(m--) { int l,r,k; read(l);read(r);read(k); for(int i=29;i>=0;i--) if((k>>i)&1) { if(base[l][i].val==0||base[l][i].pos>r)break; k^=base[l][i].val; } if(k)puts("NO"); else puts("YES"); } return 0;}
阅读全文
0 0
- 51Nod 1577 异或凑数(线性基)
- 51nod 1577 异或凑数
- 51nod 1577 异或凑数
- 51nod 异或凑数
- 51nod1577 异或凑数(算法马拉松20) 特殊的线性基构造方法
- 51nod1577 异或凑数
- 51Nod-1385-凑数字
- 51nod 1385 凑数字
- 51 nod 1385 凑数字(贪心+构造)
- 【贪心构造】51Nod 1385 凑数字
- 51nod 1385 凑数字【贪心】
- bzoj2115 线性基 异或
- 51 Nod1385凑数字
- 凑数
- 51nod 1312 最大异或和
- 51nod 1312 最大异或和
- 51nod 1301 集合异或和
- 51Nod-1496-最小异或和
- 【算法问题】解码
- Conditional Generative Adversarial Nets论文翻译
- SSM框架前台页面向数据库插入数据时出现乱码的问题
- GPUImage 源码集成到项目中
- String和StringBuffer和StringBuilder
- 51Nod 1577 异或凑数(线性基)
- HTTP状态码
- MFC-ClistCtl报表格式的使用
- eclipse根据XSD文件生成JAVA文件
- cocos2d中各种action方法的应用
- 营销运营人员的自我修炼——系列二
- Code+ 2017年12月月赛练习题 晨跑
- 二叉树遍历的非递归Java实现
- powerDesigner绘制类图