洛谷P4869 albus就是要第一个出场(线性基)
2024-09-28 07:07:37
不知道线性基是什么东西的可以看看蒟蒻的总结
线性基居然有这性质我还不知道orz
假设$n$个数的线性基中有$k$个数,那么显然共有$2^k$个不同的异或和,而其中每一个异或和的出现次数都是$2^{n-k}$
感性理解一下的话……就是不在线性基中的每一个数字都可以被线性基中的数字表示出来从而异或之后为0,那么这些数字都可以看做0,
所以每一个异或和都可以异或上0变成自己,那么0有多少种选法呢?加上空集就是$2^{n-k}$种
然后只要算出$q$之前有多少个数就好了……
然后这个东西具体怎么算……看代码好了……
//minamoto
#include<iostream>
#include<cstdio>
using namespace std;
#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[<<],*p1=buf,*p2=buf;
inline int read(){
#define num ch-'0'
char ch;bool flag=;int res;
while((ch=getc())>''||ch<'')
(ch=='-')&&(flag=true);
for(res=num;(ch=getc())<=''&&ch>='';res=res*+num);
(flag)&&(res=-res);
#undef num
return res;
}
const int mod=;
int b[],st[],top,n,q,rk;
inline int ksm(int x,int y){
int res=;
while(y){
if(y&) (res*=x)%=mod;
(x*=x)%=mod,y>>=;
}
return res;
}
void insert(int x){
for(int i=;i>=;--i)
if(x>>i&){
if(!b[i]) return (void)(b[i]=x);
x^=b[i];
}
}
int main(){
// freopen("testdata.in","r",stdin);
n=read();
for(int i=,x;i<=n;++i) insert(x=read());
q=read();
for(int i=;i<=;++i)
if(b[i]) st[top++]=i;
for(int i=;i<top;++i)
if(q>>st[i]&) rk+=<<i;
printf("%d\n",(1ll*rk*ksm(,n-top)+)%mod);
return ;
}
最新文章
- OPENWRT开始SFTP支持办法
- JAVA本地方法详解,什么是JAVA本地方法?
- BZOJ3746 : [POI2015]Czarnoksiężnicy okrągłego stołu
- 取消界面的title
- HNU 13375 Flowery Trails (spfa最短路)
- perl 打开和关闭文件
- HDU 2227 Find the nondecreasing subsequences(DP)
- Linux查看系统中的每个进程
- Lintcode227 Mock Hanoi Tower by Stacks solution 题解
- 【一天一道LeetCode】#160. Intersection of Two Linked Lists
- HTTP协议GET HEAD简单介绍
- 解决VMware虚拟机报错“无法连接MKS:套接字连接尝试次数太多,正在放弃”
- 联想Y7000安装Ubuntu16.04/Win10双系统,wifi问题,显卡驱动和CUDA10安装
- 最短路:spfa算法
- DOM&;BOM
- virt-install详解
- web.xml配置重理解
- bootstrap-validator基本使用(自定义验证身份证号和手机号)
- 分析code
- 第123天:移动web开发中的常见问题
热门文章
- 【Web探索之旅】第三部分第一课:server
- 安装 jdk-8u121( jdk1.8 ) Eclipse jee neon java EE 4.6 并配置 中国科学技术大学 http://mirrors.ustc.edu.cn/eclipse/ 仓库源
- spring 集成 mybatis 后数据源初始化失败问题分析
- apache配置文件详解及虚拟主机的搭建
- MysqlNDBcluster集群数据操作可能出现的问题
- java反射技术实例
- codeforces B. Eugeny and Play List 解题报告
- redis-cluster的实例动态调整内存
- Swift初见
- [BZOJ 1475] 方格取数