ACM-ICPC 2017 Asia Xi'an A XOR (线性基+线段树思想)
题意;给个数组,每次询问一个区间你可以挑任意个数的数字异或和 然后在或上k的最大值
题解:线性基不知道的先看这个,一个线性基可以log的求最大值把对应去区间的线性基求出来然后用线段树维护线性基
#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define maxn 100009
#define ls l,m,rt<<1
#define rs m+1,r,rt<<1|1
int read()
{
char ch=' ';
;
')
ch=getchar();
')
{
ans=ans*+ch-';
ch=getchar();
}
return ans;
}
struct ac{
];
void init(){
memset(a,,sizeof(a));
}
bool add(int x){
;j>=;j--){
<<j)){
if(!a[j]){
a[j]=x;
break;
}
x^=a[j];
}
}
;
}
int query(){
;
;j>=;j--){
if((x^a[j])>x){
x^=a[j];
}
}
return x;
}
ac merge_LB(ac x){
ac ret;
;i<=;i++){
ret.a[i]=a[i];
}
;i<=;i++){
ret.add(x.a[i]);
}
return ret;
}
}tre[maxn*];
int b[maxn];
void build(int l,int r,int in){
tre[in].init();
if(l==r){
tre[in].add(b[l]);
return ;
}
;
build(l,mid,);
build(mid+,r,+);
tre[].merge_LB(tre[+]);
}
ac query(int l,int r,int x,int y,int in){
if(l==x&&r==y){
return tre[in];
}
;
//ac ret;ret.init();
));
,y,+));
).merge_LB(query(mid+,r,mid+,y,+));
}
int main(){
int t;
cin>>t;
while(t--){
int n,m,k;
//scanf("%d%d%d",&n,&m,&k);
n=read();m=read();k=read();
k=~k;
;j<=n;j++){
scanf("%d",&b[j]);
b[j]&=k;
}
k=~k;
build(,n,);
;j<m;j++){
int l,r;
//scanf("%d%d",&l,&r);
l=read();r=read();
ac ans=query(l,r,,n,);
int an=ans.query();
an|=k;
printf("%d\n",an);
}
}
}
ACM-ICPC 2017 Asia Xi'an A XOR (线性基+线段树思想)的更多相关文章
- ACM-ICPC 2017 西安赛区现场赛 A. XOR(线性基+线段树)
题目链接:https://nanti.jisuanke.com/t/20749 参考题解:https://blog.csdn.net/Lee_w_j__/article/details/8266418 ...
- 计蒜客 A1607 UVALive 8512 [ACM-ICPC 2017 Asia Xi'an]XOR
ICPC官网题面假的,要下载PDF,点了提交还找不到结果在哪看(我没找到),用VJ交还直接return 0;也能AC 计蒜客题面 这个好 Time limit 3000 ms OS Linux 题目来 ...
- ACM-ICPC 2017 Asia Xi'an
ACM-ICPC 2017 Asia Xi'an Solved A B C D E F G H I J K 7/11 O O Ø O O ? O O O for passing during the ...
- ACM ICPC 2017 Warmup Contest 9 I
I. Older Brother Your older brother is an amateur mathematician with lots of experience. However, hi ...
- ACM ICPC 2017 Warmup Contest 9 L
L. Sticky Situation While on summer camp, you are playing a game of hide-and-seek in the forest. You ...
- luogu P2574 XOR的艺术 (线段树)
luogu P2574 XOR的艺术 (线段树) 算是比较简单的线段树. 当区间修改时.\(1 xor 1 = 0,0 xor 1 = 1\)所以就是区间元素个数减去以前的\(1\)的个数就是现在\( ...
- HDU 5475(2015 ICPC上海站网络赛)--- An easy problem(线段树点修改)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5475 Problem Description One day, a useless calculato ...
- codeforces 22E XOR on Segment 线段树
题目链接: http://codeforces.com/problemset/problem/242/E E. XOR on Segment time limit per test 4 seconds ...
- Xor && 线性基练习
#include <cstdio> #include <cstring> ; ; int cnt,Ans,b,x,n; inline int Max(int x,int y) ...
随机推荐
- rpm和yum
RMP(红帽软件包管理器) RPM有点像Windows系统中的控制面板,会建立统一的数据库文件,详细记录软件信息并能够自动分析依赖关系. YUM(软件仓库)
- Junit概述
Junit -> java unit.也就是说Junit是xunit家族中的一员. unit <- unit test case,即单元测试用例. Junit = java uni ...
- flutter开发vscode用模拟器调试
android studio的太重,我装的是android sdk,使用avd的模拟器启动黑屏 启动夜神模拟器(已卸载) 建立连接: adb connect 127.0.0.1:62001 (夜 ...
- python3 阿里云控制SLB权重
一.配置好RAM账号的权限(SLB管理权限) 二.安装依赖 pip3 install aliyun-python-sdk-slb pip3 install aliyun-python-sdk-core ...
- requests 使用免费的代理ip爬取网站
import requests import queue import threading from lxml import etree #要爬取的URL url = "http://xxx ...
- 深度学习+CRF解决NER问题
参考https://github.com/shiyybua/NER 1.开发环境:python3.5+tensorflow1.5+pycharm 2.从https://github.com/shiyy ...
- Lodop打印连续的纸张
连续的纸张,有时有会被误解为没有高度,高度自适应,其实不是,这属于纸张连续打印,纸张高度和实际单个纸张高度相同.纸张高度自适应适用于没有高度的那种小票打印(卷纸没有纸张分界线),不是这种连续纸张.关于 ...
- HTTP协议 - 使用php模拟get/post请求
首先 有个疑问, 是不是只有浏览器才能发送http 请求? 答案肯定是错的,第一篇就说了,http是由请求行,请求头,请求主体三个部分组成,那么我们可不可以用代码来模拟一下get和post请求呢: 首 ...
- react用构造函数创建组件
有两种方法,一种是通过构造函数创建,一种是通过class创建 1.构造函数创建组件 用function+组件名的方式创建,创建好了,在render里面以标签的形式一丢就可以啦!但是这种方式必须要ret ...
- 实验吧 WEB 猫抓老鼠
人生的第一道CTF题目哇,鸡冻 其实只是学了一下HTTP抓包得到的都是什么,就开始上手胡搞了 题目名字叫猫抓老鼠,还疯狂暗示catch!catch!catch!catch!,就想到要用抓包其实我是因为 ...