Codeforces Round #367 (Div. 2) Vasiliy's Multiset xor trie
来源:互联网 发布:淘宝开店需要交保证金 编辑:程序博客网 时间:2024/05/23 05:09
又学到了一个处理xor的特殊技巧。。。
发个牢骚每次打codeforces感觉要涨很多分就会挂题干!!!!!!!!!!
没激情了。。。。
#include<cstdio>#include<algorithm>#include<iostream>#define maxn 8000000using namespace std;struct node{ int son[2],am[2]; node(){ son[0] = son[1] = -1; am[0] = am[1] = 0; }}node[maxn];int root = 1,l=1;void change(int flag,int val){ int pre = root; for(int i=30;i>=0;i--) { if(node[pre].son[(val&(1<<i))!=0]!=-1) { node[pre].am[(val&(1<<i))!=0] += flag; pre = node[pre].son[(val&(1<<i))!=0]; } else{ ++l; node[pre].son[(val&(1<<i))!=0] = l; node[pre].am[(val&(1<<i))!=0]+=flag; pre = l; } }}int find(int va){ int ans = va,pre = root; for(int i=30;i>=0;i--) if(ans&(1<<i)) { if(node[pre].son[0]!=-1&&node[pre].am[0]) pre = node[pre].son[0]; else{ ans^=(1<<i); pre = node[pre].son[1]; } } else { if(node[pre].son[1]!=-1&&node[pre].am[1]) { pre = node[pre].son[1]; ans^=(1<<i); } else pre = node[pre].son[0]; } return max(ans,va);}char s[5];int main(){ int q,a; scanf("%d",&q); while(q--) { scanf("%s %d",s,&a); if(s[0]=='+')change(1,a); else if(s[0]=='-')change(-1,a); else { printf("%d\n",find(a)); } } return 0;}
0 0
- Codeforces Round #367 (Div. 2) Vasiliy's Multiset xor trie
- HDU-4825 Xor Sum &&Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (Trie树)
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (multiset)
- 字典树(Codeforces Round #367 (Div. 2) Vasiliy's Multiset,Xor问题 )
- Codeforces Round #367 (Div. 2)-Vasiliy's Multiset-最大异或和-trie
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset (01trie树)
- Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset 二进制树、Trie
- 【 Codeforces Round #367 (Div. 2) D】 Vasiliy's Multiset (Trie 按数位建字典树)
- Codeforces Round #367 (Div. 2) D Vasiliy's Multiset(01Trie)
- Codeforces Round #367 (Div. 2) Vasiliy's Multiset(字典树)
- Codeforces Round #367 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 (tire 树)
- 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(查找树)
- POJ 2431 贪心
- 198彩娱乐平台主管收有量总代Q1440580
- [Servlet]会话追踪技术
- [leetcode] 35. Search Insert Position
- hdu 4632 Palindrome subsequence (区间DP+容斥)
- Codeforces Round #367 (Div. 2) Vasiliy's Multiset xor trie
- Codeforces 706C Hard problem(dp+字符串)
- 制作mesos的docker镜像(centos7.2)
- [leetcode] 89. Gray Code
- 基于NX的研发产品设计管理平台实现(七)--BOM的设计与管理2
- 零散记8-10~8-11
- react native redux
- [leetcode] 62. Unique Paths
- Packager exited with non-zero exit code