【字典树】【贪心】Codeforces 706D Vasiliy's Multiset
来源:互联网 发布:win10 php环境搭建 编辑:程序博客网 时间:2024/05/17 02:46
题目链接:
http://codeforces.com/contest/706/problem/D
题目大意:
三种操作,1.添加一个数,2.删除一个数,3.查询现有数中与x异或最大值。(可重复)
题目思路:
【字典树】【贪心】
维护一个字典树,左0右1。查询时从上往下走。
////by coolxxx//#include<iostream>#include<algorithm>#include<string>#include<iomanip>#include<memory.h>#include<time.h>#include<stdio.h>#include<stdlib.h>#include<string.h>//#include<stdbool.h>#include<math.h>#define min(a,b) ((a)<(b)?(a):(b))#define max(a,b) ((a)>(b)?(a):(b))#define abs(a) ((a)>0?(a):(-(a)))#define lowbit(a) (a&(-a))#define sqr(a) ((a)*(a))#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))#define mem(a,b) memset(a,b,sizeof(a))#define eps (1e-8)#define J 10000000#define MAX 0x7f7f7f7f#define PI 3.1415926535897#define N 5000004using namespace std;typedef long long LL;int cas,cass;int n,m,lll,ans;int t[N];int ch[N][2];char c[1];void add(int x){int i,j,k=1;for(i=30;i>=0;i--){j=((1<<i)&x)>0;if(!ch[k][j])ch[k][j]=++lll;k=ch[k][j];t[k]++;}}void del(int x){int i,j,k=1;for(i=30;i>=0;i--){j=((1<<i)&x)>0;k=ch[k][j];t[k]--;}}int find(int x){int i,j,k=1;ans=0;for(i=30;i>=0;i--){j=((1<<i)&x)==0;if(t[ch[k][j]]){ans|=(1<<i);k=ch[k][j];}else k=ch[k][1-j];}return ans;}int main(){#ifndef ONLINE_JUDGE//freopen("1.txt","r",stdin);//freopen("2.txt","w",stdout);#endifint i,j,x;//for(scanf("%d",&cas);cas;cas--)//for(scanf("%d",&cas),cass=1;cass<=cas;cass++)//while(~scanf("%s",s))while(~scanf("%d",&n)){mem(ch,0);mem(t,0);lll=1;add(0);for(i=1;i<=n;i++){scanf("%s%d",c,&x);if(c[0]=='+')add(x);else if(c[0]=='-')del(x);else printf("%d\n",find(x));}}return 0;}/*////*/
0 0
- 【字典树】【贪心】Codeforces 706D Vasiliy's Multiset
- Codeforces 706D Vasiliy's Multiset【贪心+字典树】
- CodeForces 706D Vasiliy's Multiset 字典树
- Codeforces Round #367 (Div. 2) D Vasiliy's Multiset(字典树+贪心)
- Codeforces 706D Vasiliy's Multiset (字典树求异或最大值)
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- codeforces 706D. Vasiliy's Multiset 带删除操作的字典树(真模版)
- Codeforces 706D Vasiliy's Multiset(异或字典树)
- Codeforces-706D Vasiliy's Multiset
- CodeForces 706D Vasiliy's Multiset
- Codeforces 706D-Vasiliy's Multiset(Trie树)
- CodeForces 706D Vasiliy's Multiset(0/1树)
- 【Codeforces Round 367 (Div 2) D】【字典树典型题】Vasiliy's Multiset
- Codeforces Round #367 (Div. 2) D——Vasiliy's Multiset(异或字典树)
- Codeforces Round #367 (Div. 2) D Vasiliy's Multiset(字典树)
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(字典树模板)
- Codeforces Round #367 (Div. 2) [D] Vasiliy's Multiset(01字典树模板)
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (字典树二进制)
- 【模拟】XMU 1055 数七
- 项目实战:TabHost
- 【线段树】HDU 5443 The Water Problem
- 【中国剩余定理】POJ 1006 & HDU 1370 Biorhythms
- RenderScript模糊图片
- 【字典树】【贪心】Codeforces 706D Vasiliy's Multiset
- 【动态规划】Codeforces 706C Hard problem
- 【二分】Codeforces 706B Interesting drink
- 【模拟】Codeforces 706A Beru-taxi
- Linux安装SonarQube
- 【数学】HDU 5753 Permutation Bo
- 【模拟】HDU 5752 Sqrt Bo
- 【模拟】HDU 5762 Teacher Bo
- 【博弈论】HDU 5754 Life Winner Bo