CF959F
题目大意:给定n个数,有Q次询问,每次询问由两个数l,x组成,表示前缀[1,l]构成的子序列有多少异或起来为x,个数%1e9+7
做法:考虑一个由x个数构成的线性基,如果这个线性基由Y个数构成,可以通过线性基得到z,那么x个数得到z的方案为2^(Y-x),不在线性基中的数随便选
然后就变成斯波题了,维护一个前缀线性基就好了
代码:
#include<bits/stdc++.h>
#define Mod 1000000007
#define N 100005
using namespace std;
int a[N],b[N][22],cnt[N],bin[N],n,Q,x,y;
inline bool check(int x,int y){
for (int i=20;~i;i--){
if (y&(1<<i)){
if (!b[x][i]) return 0;
y=y^b[x][i];
}
}
return y==0;
}
int main(){
scanf("%d%d",&n,&Q);
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
for (int i=1;i<=n;i++){
for (int j=0;j<=20;j++) b[i][j]=b[i-1][j];
cnt[i]=cnt[i-1];
for (int j=20;~j;j--){
if (a[i]&(1<<j)){
if (!b[i][j]){b[i][j]=a[i];cnt[i]++;break;}
else a[i]^=b[i][j];
}
}
}bin[0]=1;
for (int i=1;i<=n;i++) bin[i]=1ll*bin[i-1]*2%Mod;
while (Q--){
scanf("%d%d",&x,&y);
if (!check(x,y)) puts("0");
else printf("%d\n",bin[x-cnt[x]]);
}
return 0;
}
CF959F的更多相关文章
- [CF959F]Mahmoud and Ehab and yet another xor task题解
搞n个线性基,然后每次在上一次的基础上插入读入的数,前缀和线性基,或者说珂持久化线性基. 然后一个num数组记录当时线性基里有多少数 然后每次前缀操作一下就珂以了 代码 #include <cs ...
随机推荐
- 01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置
1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下 ...
- C++对象模型的那些事儿之六:成员函数调用方式
前言 C++的成员函数分为静态函数.非静态函数和虚函数三种,在本系列文章中,多处提到static和non-static不影响对象占用的内存,而虚函数需要引入虚指针,所以需要调整对象的内存布局.既然已经 ...
- Nginx中502和504错误详解
在使用Nginx时,经常会碰到502 Bad Gateway和504 Gateway Time-out错误,下面以Nginx+PHP-FPM来分析下这两种常见错误的原因和解决方案. 1.502 Bad ...
- 修改GDAL库支持IRSP6数据
使用GDAL库发现不能打开IRSP6的数据,不过看GDAL提供的文件格式里面却是支持IRSP6的数据的,具体可以参考网页http://www.gdal.org/frmt_fast.html.下面图1是 ...
- Andriod的国际化-android学习之旅(五十八)
android资源国际化
- iOS中 GCD-Grand Central Dispath 多线程 UI_21
GCD:Grand Central Dispath "牛逼的中枢调度器";是纯C语言编写的,提供了很多比较强大的函数 GCD:优势 1.目前是苹果主推的线程管理方式 2.它会自动的 ...
- volatile实现可见性但不保证原子性
volatile实现可见性但不保证原子性 volatile关键字: 能够保证volatile变量的可见性 不能保证volatile变量复合操作的原子性 volatile如何实现内存可见性: 深入来说: ...
- Strategy 设计模式 策略模式 超靠谱原代码讲解
先来假设一种情,我们需要向三种不同的客户做出不同的报价,一般来说要肿么设计呢,是不是马上会想到用IF,没有错,对于这种情况,策略模式是最好的选.大家可以这么理解,如果有情况需要用到大量的IF,那你用策 ...
- Swift基础之PickerView(时间)选择器
代码讲解:(后面有额外代码讲解) 首页设计UIPickerView的样式设计: leftArray = ["花朵","颜色","形状"]; ...
- MinerQueue.java 访问队列
MinerQueue.java 访问队列 package com.iteye.injavawetrust.miner; import java.util.HashSet; import java.ut ...