Educational Codeforces Round 23:E. Choosing The Commander(字典树01异或)
Educational Codeforces Round 23:E. Choosing The Commander(字典树01异或)
3 给出一个数pi和l,询问有多少个数pj满足pi^pj<l
思路:
建字典树,询问的时候当碰到 l 的某一位为1的某一位为1的时候,就更新结果,然后继续搜索
注意siz初始化为1
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e6+5;
int t,tire[maxn][2],sp[40],lp[40],p[40],siz=1,val[maxn];void insert(int* s,int w){int now=1;for(int i=0;i<=28;i++){if(!tire[now][s[i]])tire[now][s[i]]=++siz;now=tire[now][s[i]];val[now]+=w;}
}
int query(int* s,int* l){int now=1,ans=0;for(int i=0;i<=28;i++){if(l[i])ans+=val[tire[now][s[i]]];now=tire[now][s[i]^l[i]];}return ans;
}
void getbit(int x){for(int i=28,d=1<<i,z=0;i>=0;i--,d=1<<i,z++){if(x&d)p[z]=1;else p[z]=0;}
}
int main(){scanf("%d",&t);while(t--){int op,a,b;scanf("%d",&op);if(op==1){scanf("%d",&a);getbit(a);for(int i=0;i<=28;i++)sp[i]=p[i]; insert(sp,1);}else if(op==2){scanf("%d",&a);getbit(a);for(int i=0;i<=28;i++)sp[i]=p[i];insert(sp,-1);}else{scanf("%d%d",&a,&b);getbit(a);for(int i=0;i<=28;i++)sp[i]=p[i]; getbit(b);for(int i=0;i<=28;i++)lp[i]=p[i]; printf("%d\n",query(sp,lp));}}
}
Educational Codeforces Round 23:E. Choosing The Commander(字典树01异或)相关推荐
- Educational Codeforces Round 23 E. Choosing The Commander 字典树
题目连接:E. Choosing The Commander 题意:士兵有个值,指挥官有两个p,l三种操作,第一种添加一个值为p的士兵,第二种删除一个值为p的士兵,(士兵pi只会尊敬pi^p<l ...
- Educational Codeforces Round 17 E. Radio stations cdq分治 + 树状数组
传送门 文章目录 题意 思路: 题意 有nnn个电台,对于每个电台iii有三个参数xi,ri,fix_i,r_i,f_ixi,ri,fi,分别指他们的坐标.作用半径.频率.如果两个电台频率差值在 ...
- Educational Codeforces Round 37-F.SUM and REPLACE (线段树,线性筛,收敛函数)
F. SUM and REPLACE time limit per test2 seconds memory limit per test256 megabytes inputstandard inp ...
- Educational Codeforces Round 22 E. Army Creation 【主席树】
题目链接 题意 给出一个序列a[1..n]a[1..n]a[1..n],mmm 次询问区间 [L,R][L,R][L,R] 可以选多少个数(相同的数最多选 KKK 个),强制在线 题解 先求出每个 i ...
- Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)
Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...
- Educational Codeforces Round 24 E. Card Game Again(双指针)
题目链接:Educational Codeforces Round 24 E. Card Game Again 题意: 给你n个数和一个数k. 现在每次可以拿掉前x个数,后y个数,剩下的数的乘积要能被 ...
- Educational Codeforces Round 25 G. Tree Queries
题目链接:Educational Codeforces Round 25 G. Tree Queries 题意: 给你一棵树,一开始所有的点全是黑色,有两种操作. 1 x 将x这个点变为黑色,保证第一 ...
- Educational Codeforces Round 40千名记
人生第二场codeforces.然而遇上了Education场这种东西 Educational Codeforces Round 40 下午先在家里睡了波觉,起来离开场还有10分钟. 但是突然想起来还 ...
- Educational Codeforces Round 133 (Rated for Div. 2)(CD题解)
Educational Codeforces Round 133 (Rated for Div. 2)CD题解 过AB补CD C. Robot in a Hallway 题意 题意:现有 2∗m 的方 ...
最新文章
- 数据解读“特殊”春运:“返乡过年”人数同比降五成,这些人成今年春运主力...
- 正则表达式基本语法元字符
- 简单介绍一下solr
- ElasticSearch创建、修改、获取、删除、索引Indice mapping和Index Template案例
- Uniapp 导入 Vant 组件库
- c++游戏编程100事列_游戏编程入门(c++小游戏编程100例)
- 6678EMIF总结
- 【2019.06.21】基于Airtest的微信朋友圈自动点赞脚本设计与实现 2019.06.21脚本正常运行
- 下次约会时,让人工智能做你的僚机!
- #超级818汽车狂欢夜#易车 买车不吃亏就上易车app
- 查询oracle原始表d,oracle 多表查询
- 【Qt】动态刷新lcdNumber显示的值
- Android 安卓动画 属性动画 - 移动动画
- win10下使用oflash时提示ftd2xx.dll缺失
- Xilinx-7系列 CLB逻辑资源
- feed流和瀑布流_推荐系统之Feed流UI交互设计
- 《利用Python进行数据分析》第一个案例
- JQuery表单的提交方式
- 数据库设计之area区域表改版后,数据库设计之区域表
- MT9V034六个寄存器的配置
热门文章
- fasterrcnn使用
- 越疆科技dobot(magician)机械臂在ROS moveit下gazebo仿真控制和真实控制功能包 有兴趣的可以下载来玩
- 南邮和重庆邮电大学计算机专业,同是邮电高校,南邮和重庆邮电大学谁更厉害?...
- 42-面对对象编程(高级部分)2
- 太阳能锂电池充电电路
- 2022-2028全球与中国循环冷冻空气干燥机市场现状及未来发展趋势
- 【STM32-FatFs】fatfs(文件系统)执行f_sync之前数据保存在什么地方(stm32)
- java 龟兔赛跑预测_龟兔
- php怎么改成java,求大神帮忙把php的改成java谢谢
- courgette(小胡瓜)测试报告