计蒜客 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
VJ爬到的英文题面什么鬼啊,除了标题,哪里有xor字样啊?\((A[i_1], A[i_2], . . . , A[i_t])\)意思是gcd啊?简直了。
计蒜客的题面
2000ms 是不是计蒜客评测姬快一点,时限少了1s
262144K
Consider an array \(A\) with n elements . Each of its element is \(A[i] (1≤i≤n)\) . Then gives two integers \(Q, K\), and \(Q\) queries follow . Each query , give you$ L, R$, you can get \(Z\) by the following rules.
To get \(Z\) , at first you need to choose some elements from \(A[L]\) to \(A[R]\) ,we call them \(A[i_1],A[i_2]…A[i_t]\) , Then you can get number \(Z=K \text{or} (A[i_1] \text{xor} A[i_2] … \text{xor} A[i_t])\) .
Please calculate the maximum \(Z\) for each query .
Input
Several test cases .
First line an integer \(T (1≤T≤10)\) . Indicates the number of test cases.Then \(T\) test cases follows . Each test case begins with three integer \(N, Q, K (1≤N≤10000, 1≤Q≤100000, 0≤K≤100000)\) . The next line has \(N\) integers indicate \(A[1]\) to \(A[N] (0≤A[i]≤10^8)\). Then \(Q\) lines , each line two integer \(L, R (1≤L≤R≤N)\) .
Output
For each query , print the answer in a single line.
样例输入
1
5 3 0
1 2 3 4 5
1 3
2 4
3 5
样例输出
3
7
7
解题思路
再扔个链接
和todolist的之前一题shallot差不多,也是用线段树维护区间线性基,线段树上每个点都是对应区间的线性基。这题时间空间稍微宽松一些了,所以十分暴力,不加各种优化也可以0ms轻松AC。或上k的问题,可以在输入时把A里所有元素处理一下:a[i]&=~k;,把k为1那几位全部清零,输出的时候找处理后的区间异或最大值,在或上k即可。正确性还不会证,留坑。但意会一下感觉是对的。
又完成了一份todolist
- [x] CodeForces 1100F Ivan and Burgers 单纯询问区间异或最大值
- [x] HDU 6579 Operation 多了个末尾插入数据的操作,还有强制在线
- [x] BZOJ 4184 shallot 这题还多了插入和删除的操作。居然是权限题……本地测一下算了。
- [x] UVALive 8514 XOR 2017ICPC西安的一道题,操作都差不多
源代码
#include<vector>
#include<cstdio>
#include<algorithm>
const int MAXN=1e4+5;
int T;
int n,q,k;
struct Linear{
std::vector<int> p;//32就够了
void insert(int x)
{
if(p.size()>=32) return;
for(int i=p.size()-1;~i;i--)
{
if((x^p[i])<x) x^=p[i];
else if(p[i]<x) break;
}
if(x)
{
p.push_back(x);
for(int i=p.size()-1;i&&p[i]<p[i-1];i--) std::swap(p[i],p[i-1]);
}
}
int quemx()
{
int ans=0;
for(int i=p.size()-1;~i;i--)
ans=std::max(ans,ans^p[i]);
return ans;
}
void merge(const Linear & s)//暴力合并
{
for(int i=s.p.size()-1;~i;i--) insert(s.p[i]);
}
}ze;//空的线性基
int a[MAXN];//原序列
Linear t[MAXN<<2];
void build(int x,int l,int r)//不带修改
{
if(l==r)
{
t[x].insert(a[l]);
return;
}
int mid=l+r>>1;
build(x<<1,l,mid);
build(x<<1|1,mid+1,r);
t[x]=t[x<<1];
t[x].merge(t[x<<1|1]);
}
Linear ans;
void que(int x,int l,int r,int ql,int qr)//每次询问前要在主函数中清空ans//会内存泄漏吗……
{
if(ql<=l&&r<=qr)
{
ans.merge(t[x]);
return;
}
int mid=l+r>>1;
if(ql<=mid) que(x<<1,l,mid,ql,qr);
if(qr>mid) que(x<<1|1,mid+1,r,ql,qr);
}
int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%d%d%d",&n,&q,&k);
k=~k;
for(int i=1;i<=n;i++)
{
scanf("%d",a+i);
a[i]&=k;
}
k=~k;
build(1,1,n);
while(q--)
{
int l,r;
scanf("%d%d",&l,&r);
ans=ze;
que(1,1,n,l,r);
printf("%d\n",ans.quemx()|k);
}
}
return 0;
}
计蒜客 A1607 UVALive 8512 [ACM-ICPC 2017 Asia Xi'an]XOR的更多相关文章
- 计蒜客 The Preliminary Contest for ICPC Asia Nanjing 2019
F Greedy Sequence You're given a permutation aa of length nn (1 \le n \le 10^51≤n≤105). For each ...
- 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)
ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...
- 爬虫acm比赛成绩(多页成绩整合在一起、获取复制不了的数据)(hihocoder、计蒜客)
https://github.com/congmingyige/web-crawler_rank-of-competition-in-JiSuanKe-and-hihocoder 1. 计蒜客(获取复 ...
- 计蒜客 作弊揭发者(string的应用)
鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...
- 计蒜客的一道题dfs
这是我无聊时在计蒜客发现的一道题. 题意: 蒜头君有一天闲来无事和小萌一起玩游戏,游戏的内容是这样的:他们不知道从哪里找到了N根不同长度的木棍, 看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形. ...
- 计蒜客模拟赛5 D2T1 成绩统计
又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...
- 计蒜客 等边三角形 dfs
题目: https://www.jisuanke.com/course/2291/182238 思路: 1.dfs(int a,int b,int c,int index)//a,b,c三条边的边长, ...
- 计蒜客 方程的解数 dfs
题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...
- 计蒜客 买书 dfs
题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...
随机推荐
- Akka系列(四):Akka中的共享内存模型
前言...... 通过前几篇的学习,相信大家对Akka应该有所了解了,都说解决并发哪家强,JVM上面找Akka,那么Akka到底在解决并发问题上帮我们做了什么呢? 共享内存 众所周知,在处理并发问题上 ...
- poj2773(欧基里德算法 或 二分+容斥)
题目链接:https://vjudge.net/problem/POJ-2773 题意:给定m,k,求与m互质的第k个数. 思路一:利用gcd(a,b)=gcd(b*t+a,b)知道,与m互质的数是以 ...
- [转帖]SUN/Oracle JDK还是OpenJDK?
你安装的是 https://www.cnblogs.com/shoufeng/p/9719995.html 目录 1 如何查看你安装的JDK版本 1.1 要用到的命令行工具 1.2 查看JDK的版本 ...
- Oracle 查看 impdp 正在执行的内容
1. 今天进行数据库备份恢复 一直卡住 找了一下 公司另外一个部门的方神提供了一个方法连查看 具体在做什么操作: 2. 现象. impdp 到一个地方直接卡住不动 具体位置 view 这个地方足足卡 ...
- C++中类模板的概念和意义
1,在 C++ 中是否能够将泛型的思想应用于类? 1,函数模板是将泛型编程的思想应用于函数,就有了函数模板: 2,可以,常用的 C++ 标准库就是 C++ 中的标准模板库,C++ 中的 STL 就是将 ...
- 设备程序远程升级采用两种方式(优先采用IP方式)
设备程序远程升级采用两种方式(优先采用IP方式): 采用应急广播TS流传输技术规范的消息内容表携带升级包数据.当辅助数据类型值为44时,消息内容表传输的数据为程序升级包. 采用IP方式传输升级包数据. ...
- java tomcat服务器
1.什么是javaweb? Java web,是用java技术来解决相关web互联网领域的技术的总称. web包括:web服务器和web客户端两部分.java在最早web客户端的应用有java app ...
- 01:kubernetes基础
1.1kubernetes简介 参考博客:https://www.kubernetes.org.cn/k8s 1.kubernetes介绍 1. Kubernetes是容器集群管理系统,是一个开源 ...
- fiddler 不能抓包解决
早上使用金山毒霸扫描了一遍电脑,然后打开fiddler后,出现了一个提示(当时没有注意看),直接点了确定,导致结果是不能抓包了,百度了很多方法,最后直接卸载金山毒霸,然后将防火墙还原为默认设置(风险不 ...
- wordpress后台编辑如何显示定义的`style.css`样式
wordpress后台编辑如何显示定义的style.css样式 由于公司官网采用wordpress进行搭建,但是却又自己设计页面,无奈主题只能自行构建了,直接修改wordpress自带的主题进行修改. ...