题目链接:Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset

题意:

给你一些操作,往一个集合插入和删除一些数,然后?x让你找出与x异或后的最大值

题解:

trie树xjb搞就行,每次要贪心,尽量满足高位为1.

 #include<bits/stdc++.h>
#define F(i,a,b) for(int i=a;i<=b;i++)
using namespace std; namespace trie
{
const int N=(2e5+)*;
int tr[N][],ed=-,cnt[N];
void nw(){cnt[++ed]=,tr[ed][]=tr[ed][]=;}
void update(int x,int c,int now=)
{
for(int i=;i>=;i--)
{
int v=x>>i&;
if(!tr[now][v])nw(),tr[now][v]=ed;
now=tr[now][v];
cnt[now]+=c;
}
}
int ask(int x,int now=,int ans=)
{
for(int i=;i>=;i--)
{
int v=x>>i&;
if(!cnt[tr[now][v^]])now=tr[now][v];
else now=tr[now][v^],ans|=<<i;
}
return ans;
}
}
using namespace trie;
int main()
{
int n,x;char op[];
scanf("%d",&n);
nw(),update(,);
F(i,,n)
{
scanf("%s%d",op,&x);
if(op[]=='+')update(x,);
else if(op[]=='-')update(x,-);
else printf("%d\n",ask(x));
}
return ;
}

Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset的更多相关文章

  1. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (0/1-Trie树)

    Vasiliy's Multiset 题目链接: http://codeforces.com/contest/706/problem/D Description Author has gone out ...

  2. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset Trie

    题目链接: http://codeforces.com/contest/706/problem/D D. Vasiliy's Multiset time limit per test:4 second ...

  3. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(可持久化Trie)

    D. Vasiliy's Multiset time limit per test 4 seconds memory limit per test 256 megabytes input standa ...

  4. Codeforces Round #367 (Div. 2)D. Vasiliy's Multiset (字典树)

    D. Vasiliy's Multiset time limit per test 4 seconds memory limit per test 256 megabytes input standa ...

  5. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset trie树

    D. Vasiliy's Multiset time limit per test 4 seconds memory limit per test 256 megabytes input standa ...

  6. Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(01字典树求最大异或值)

    http://codeforces.com/contest/706/problem/D 题意:有多种操作,操作1为在字典中加入x这个数,操作2为从字典中删除x这个数,操作3为从字典中找出一个数使得与给 ...

  7. Codeforces Round #367 (Div. 2) C. Hard problem(DP)

    Hard problem 题目链接: http://codeforces.com/contest/706/problem/C Description Vasiliy is fond of solvin ...

  8. Codeforces Round #367 (Div. 2) B. Interesting drink (模拟)

    Interesting drink 题目链接: http://codeforces.com/contest/706/problem/B Description Vasiliy likes to res ...

  9. Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)

    Beru-taxi 题目链接: http://codeforces.com/contest/706/problem/A Description Vasiliy lives at point (a, b ...

随机推荐

  1. 如何得到AdoConnection.execute(sqlstr)执行的返回结果

    如何得到AdoConnection.execute(sqlstr)执行的返回结果? 1: TAdoConnection.execute有procedure.function的两种定义,function ...

  2. RedisDesktopManager

    下载地址: https://github.com/uglide/RedisDesktopManager/releases

  3. Tiny6410之NAND FLASH驱动

    一.NAND FLASH的特点 S3C6410的NAND FLASH控制器有如下特点 1.自导入模式:复位后,引导代码被送入到8KB的STEPPINGSTONE中,引导代码移动完毕,引导代码将在STE ...

  4. 视频和字幕演示APK, 欢迎下载

    视频和字幕合成的演示APK 移动视频处理, 小咖秀-美拍-秒拍需要的字幕合成功能 我们推出这个demo, 视频格式支持MP4,字幕支持SRT/ASS/LRC,字幕文件编码为UTF8格式. 欢迎定制视频 ...

  5. Android 6.0之权限管理

    安卓6.0的权限体系分为非敏感权限和敏感权限,非敏感权限默认获取,可以手动关闭. 敏感权限必须由app在运行时动态申请.而存储读写空间权限是一个敏感权限,不是一个“很正常的必须权限”. 安卓并不是想要 ...

  6. hdu 3669 Cross the Wall(斜率优化DP)

    题目连接:hdu 3669 Cross the Wall 题意: 现在有一面无限大的墙,现在有n个人,每个人都能看成一个矩形,宽是w,高是h,现在这n个人要通过这面墙,现在只能让你挖k个洞,每个洞不能 ...

  7. String 类上的常用操作

    java 中String 类上的常用操作: 首先创建对象  String line = new String("String demo"); String line2 = new ...

  8. php 学习之对象

    php中怎么实现创建一个对象然后全局都能调用? 在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它.一个很好的例子就是smarty变量,一旦被初始化后就可以在任何 ...

  9. com.google.common.collect.Lists#transform使用注意

    /** * Returns a list that applies {@code function} to each element of {@code * fromList}. The return ...

  10. 2015 asia xian regional F Color (容斥 + 组合数学)

    2015 asia xian regional F Color (容斥 + 组合数学) 题目链接http://codeforces.com/gym/100548/attachments Descrip ...