HDU 3949 XOR 高斯消元
题目大意:给定一个数组,求这些数组通过异或能得到的数中的第k小是多少
首先高斯消元求出线性基,然后将k依照二进制拆分就可以
注意当高斯消元结束后若末尾有0则第1小是0 特判一下然后k--
然后HDU输出long long是用%I64d 不管C艹还是G艹都是
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 10100
using namespace std;
typedef long long ll;
int n,m,cnt;
bool zero;
ll a[M];
void Gaussian_Elimination()
{
int i,k=0;
ll j;
for(j=1ll<<62;j;j>>=1)
{
for(i=k+1;i<=n;i++)
if(a[i]&j)
break;
if(i==n+1)
continue;
swap(a[i],a[++k]);
for(i=1;i<=n;i++)
if(i!=k)
if(a[i]&j)
a[i]^=a[k];
}
zero=(k!=n);
n=k;
}
ll Query(ll x)
{
int i;
ll re=0;
x-=zero;
if(!x)
return 0;
for(i=n;i;i--)
{
if(x&1)re^=a[i];
x>>=1;
}
if(x)
return -1;
return re;
}
int main()
{
int T,i;
ll x;
for(cin>>T;T;T--)
{
printf("Case #%d:\n",++cnt);
cin>>n;
for(i=1;i<=n;i++)
scanf("%I64d",&a[i]);
Gaussian_Elimination();
cin>>m;
for(i=1;i<=m;i++)
scanf("%I64d",&x),printf("%I64d\n", Query(x) );
}
}
HDU 3949 XOR 高斯消元的更多相关文章
- HDU 3949 XOR [高斯消元XOR 线性基]
		
3949冰上走 题意: 给你 N个数,从中取出若干个进行异或运算 , 求最后所有可以得到的异或结果中的第k小值 N个数高斯消元求出线性基后,设秩为$r$,那么总共可以组成$2^r$中数字(本题不能不选 ...
 - ACM学习历程—HDU 3949 XOR(xor高斯消元)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3949 题目大意是给n个数,然后随便取几个数求xor和,求第k小的.(重复不计算) 首先想把所有xor的 ...
 - ACM学习历程—HDU 3915 Game(Nim博弈 && xor高斯消元)
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3915 题目大意是给了n个堆,然后去掉一些堆,使得先手变成必败局势. 首先这是个Nim博弈,必败局势是所 ...
 - bzoj 2115: [Wc2011] Xor xor高斯消元
		
2115: [Wc2011] Xor Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 797 Solved: 375[Submit][Status] ...
 - ACM学习历程—UESTC 1219 Ba Gua Zhen(dfs && 独立回路 && xor高斯消元)
		
题目链接:http://acm.uestc.edu.cn/#/problem/show/1219 题目大意是给了一张图,然后要求一个点通过路径回到这个点,使得xor和最大. 这是CCPC南阳站的一道题 ...
 - ACM学习历程—BZOJ 2115 Xor(dfs && 独立回路 && xor高斯消元)
		
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2115 题目大意是求一条从1到n的路径,使得路径xor和最大. 可以发现想枚举1到n的所有路 ...
 - ACM学习历程—SGU 275 To xor or not to xor(xor高斯消元)
		
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=275 这是一道xor高斯消元. 题目大意是给了n个数,然后任取几个数,让他们xor和 ...
 - hdu3949 XOR xor高斯消元
		
XOR Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
 - SGU 275 To xor or not to xor 高斯消元求N个数中选择任意数XORmax
		
275. To xor or not to xor The sequence of non-negative integers A1, A2, ..., AN is given. You are ...
 
随机推荐
- django的orm获取字段去重值
			
如果要用django的ORM获取一个表字段所有可能的去重值. 网上找了很多,都是用distinct关键字,但如何没有随后的order_by, 还是达不到要求的. 最后搞定. 参考URL http:// ...
 - Base Class 慎用箭头函数
			
在项目中,child继承base的时候,需要重新修改base.fun的逻辑,但是有些情况下面并不是简单的覆盖,而是在base.fun的逻辑基础上进行加工处理. 刚开始接触es6的时候也许都遇到过,ch ...
 - MySQL的表管理
			
首先,先选择数据库(极其特别重要,如果不选择,将默认为第一个数据库) mysql > use db_name; 查看所有表 mysql > show tables; 1.创建表 creat ...
 - PyCharm中 ImportError: No module named tensorflow
			
安装完 tensorflow 后在 PyCharm 中导入时显示找不到,可设置如下: PyCharm 中依次打开 File -> Settings -> Project:PycharmPr ...
 - 深入理解JS各种this指向问题
			
说到this,入前端坑的人都知道这是JS初期语言毕竟之路.很多人(我就是)对于this的了解很模糊,或者不够全面.最近打算在反过来在看下es6,在es6中又出现了箭头函数对于this的理解有多了层认识 ...
 - C语言的第一天
			
代码根本C语言(我不知道这句话,严不严谨) 2019年4月30日(day01) 软件Code::blocks #include <stdio.h> //导入标准的io库 #include ...
 - Robot Framework Selenium学习博客
			
http://blog.csdn.net/tulituqi/article/details/21888059
 - TCP(传输控制协议)
			
三次握手tcp是一种面向链接的.可靠的.基于字节流的传输层通信协议,提供可靠的连接服务,采用三次握手确认建立一个连接.位码即tcp标志位,有6种标示:1.SYN(synchronous建立连接)2.A ...
 - scrapy抓取拉勾网职位信息(五)——代码优化
			
上一篇我们已经让代码跑起来,各个字段也能在控制台输出,但是以item类字典的形式写的代码过于冗长,且有些字段出现的结果不统一,比如发布日期. 而且后续要把数据存到数据库,目前的字段基本都是string ...
 - Xml配置文件属性的说明
			
Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...