Codeforces Round #532 (Div. 2) F 线性基(新坑) + 贪心 + 离线处理
https://codeforces.com/contest/1100/problem/F
题意
一个有n个数组c[],q次询问,每次询问一个区间的子集最大异或和
题解
- 单问区间子集最大异或和,线性基能处理,但是这次多次询问,假如每次重新建立基向量会超时
- 考虑区间的优先级,假如我只插入不删除的话,区间的优先级和左端点没有关系
- 贪心一下,只保留后面插入的基,这样就可以离线解决询问,然后查询的时候需要判基的位置是不是在左端点后面
代码
#include<bits/stdc++.h>
#define ft first
#define se second
#define pii pair<int,int>
#define mk make_pair
#define MAXN 500005
using namespace std;
vector<pii>G[MAXN];
int c[MAXN],n,i,q,j,ans[MAXN],B[30],pos[30],l,r;
void add(int x,int p){
for(int i=20;i>=0;i--){
if(x>>i&&1){
if(!B[i]){
pos[i]=p;
B[i]=x;
}
if(p>pos[i])swap(p,pos[i]),swap(x,B[i]);
x^=B[i];
}
}
}
int main(){
cin>>n;
for(i=1;i<=n;i++)scanf("%d",&c[i]);
cin>>q;
for(i=1;i<=q;i++){
scanf("%d%d",&l,&r);
G[r].push_back(mk(i,l));
}
for(i=1;i<=n;i++){
add(c[i],i);
for(auto x:G[i]){
for(j=20;j>=0;j--){
if(pos[j]>=x.se)ans[x.ft]=max(ans[x.ft]^B[j],ans[x.ft]);
}
}
}
for(i=1;i<=q;i++)printf("%d\n",ans[i]);
}
Codeforces Round #532 (Div. 2) F 线性基(新坑) + 贪心 + 离线处理的更多相关文章
- Codeforces Round #548 (Div. 2) E 二分图匹配(新坑) or 网络流 + 反向处理
https://codeforces.com/contest/1139/problem/E 题意 有n个学生,m个社团,每个学生有一个\(p_i\)值,然后每个学生属于\(c_i\)社团, 有d天,每 ...
- Codeforces Round #485 (Div. 2) F. AND Graph
Codeforces Round #485 (Div. 2) F. AND Graph 题目连接: http://codeforces.com/contest/987/problem/F Descri ...
- Codeforces Round #486 (Div. 3) F. Rain and Umbrellas
Codeforces Round #486 (Div. 3) F. Rain and Umbrellas 题目连接: http://codeforces.com/group/T0ITBvoeEx/co ...
- Codeforces Round #532 (Div. 2)
Codeforces Round #532 (Div. 2) A - Roman and Browser #include<bits/stdc++.h> #include<iostr ...
- Codeforces Round #501 (Div. 3) F. Bracket Substring
题目链接 Codeforces Round #501 (Div. 3) F. Bracket Substring 题解 官方题解 http://codeforces.com/blog/entry/60 ...
- Codeforces Round #532 (Div. 2) 题解
Codeforces Round #532 (Div. 2) 题目总链接:https://codeforces.com/contest/1100 A. Roman and Browser 题意: 给出 ...
- Codeforces Round #499 (Div. 1) F. Tree
Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...
- Codeforces Round #532 (Div. 2):F. Ivan and Burgers(贪心+异或基)
F. Ivan and Burgers 题目链接:https://codeforces.com/contest/1100/problem/F 题意: 给出n个数,然后有多个询问,每次回答询问所给出的区 ...
- Codeforces Round #532 (Div. 2) Solution
A. Roman and Browser 签到. #include <bits/stdc++.h> using namespace std; ]; int get(int b) { ]; ...
随机推荐
- How to Build a New Habit: This is Your Strategy Guide
How to Build a New Habit: This is Your Strategy Guide by James ClearRead this on JamesClear.com Acco ...
- Redis 数据类型归纳
Redis的数据类型从整体上看,都是Key-Value键值对的模型,数据类型更确切地说,应该是Value的数据类型,比如string,set,list等,都是key值对应的Value的数据集合格式.不 ...
- Ubuntu搜狗拼音输入法崩溃问题
Ubuntu 14.04.5 LTS 环境下搜狗拼音经常崩溃,似乎也没有什么特别好的解决办法. 以下是重启命令 #!/bin/sh >/dev/>& >/dev/>&a ...
- [原创] debian 9.3 搭建seafile企业私有网盘
[原创] debian 9.3 搭建seafile企业私有网盘 需求是这样的, 个人疲惫于 "成为大伙的文件中转站" ,公司不管大大小小的文件,都要打电话过来“转个xx文件”.“帮 ...
- jquery 事件的触发与绑定
bind事件绑定: live事件绑定: hover事件绑定: one事件绑定 toggle事件绑定:
- uni-app 使用 iconfont
使用 uni-app 做项目时需要用到 iconfont.和 web 使用略有差别.谨以此记录. 因为 uni-app 不能使用本地字体图标库,所以不能直接下载使用. 1.将iconfont中需要的图 ...
- .net 语音,视频等格式转换
最近在做微信公众号开发的时候遇到一个问题,就是微信接收到语音消息的格式为amr,在网页上通常不能直接播放,需要先转为mp3,于是找到了一个办法,使用ffmpeg.exe,网上可以搜一下ffmpeg.e ...
- 【spring】使用spring过程中踩到的坑
这里简单记录一下,学习spring的时候碰过的异常: 异常:org.springframework.beans.factory.BeanDefinitionStoreException: Unexpe ...
- Celery 1
Celery是一个用Python开发的异步的分布式任务调度模块 Celery有以下优点: 简单:一但熟悉了celery的工作流程后,配置和使用还是比较简单的 高可用:当任务执行失败或执行过程中发生连接 ...
- VLC 用到的那些 YUV 格式
YUV是视频应用中使用的一类像素格式.YUV实际上是所有“YUV”像素格式共有的颜色空间的名称. 与RGB格式(红 - 绿 - 蓝)相对应,YUV颜色用一个称为Y(相当于灰度)的“亮度”分量和两个“色 ...