• Codeforces Round #367 (Div. 2) Vasiliy's Multiset 异或字典树带删除模板


    多重集版的异或字典树,拿之前的板子瞎改了改居然能用,看来功能理解得没错。。

    莫名wa7,回忆一波代码意义之后感觉没问题啊

    读读题发现这个多重集里居然永远有0

    。。。

    赛中能debug出来还是挺开心的

    #include<bits/stdc++.h>  
    //#pragma comment(linker, "/STACK:1024000000,1024000000")   
    #include<stdio.h>  
    #include<algorithm>  
    #include<queue>  
    #include<string.h>  
    #include<iostream>  
    #include<math.h>  
    #include<set>  
    #include<map>  
    #include<vector>  
    #include<iomanip>  
    using namespace std;  
    #define ll long long  
    #define pb push_back  
    #define FOR(a) for(int i=1;i<=a;i++)  
    const int inf=0x3f3f3f3f;  
    const int maxn=2e5+9;    
    const int maxnode=32*maxn;  
      
    int ch[maxnode][2];  
    int val[maxnode];  
    int vis[maxnode];
    int sz;  
    void init(){memset(ch[0],0,sizeof ch[0]);sz=1;}  
      
    void insert(int num){  
    	int now=0;  
    	for(int i=30;i>=0;i--){  
    		int c=(num>>i)&1;  
    		if(!ch[now][c]){  
    			memset(ch[sz],0,sizeof ch[sz]);  
    			val[sz]=0; 
    		   	vis[sz]=0;	
    			ch[now][c]=sz++;  
    		}  
    		now=ch[now][c];  
    		vis[now]++;
    	}  
    	val[now]=num;  
    }  
    void del(int num){
    	int now=0;
    	for(int i=30;i>=0;i--){
    		int c=(num>>i)&1;
    		now=ch[now][c];
    		vis[now]--;
    	}
    }
    int query(int num){  
    	int now=0;  
    	for(int i=30;i>=0;i--){  
    		int c=(num>>i)&1;  
    		if(ch[now][c^1] && vis[ch[now][c^1]])now=ch[now][c^1];  
    		else if(vis[ch[now][c]])now=ch[now][c];  
    		else{
    			return 0;
    		}
    	}  
    	return val[now];  
    }  
    
    char op[5];int num;
    int main(){
    	init();
    	int n;scanf("%d",&n);
    	while(n--){
    		scanf("%s%d",op,&num);
    		if(op[0]=='+')insert(num);
    		else if(op[0]=='-')del(num);
    		else printf("%d
    ",max(num,num^query(num)));
    	}
    }


  • 相关阅读:
    浏览器缓存机制
    关于CSRF的攻击
    关于CGI、FastCGI和PHP-FPM的关系
    PHP-FPM进程数的设定
    一个论坛引发的血案
    Django中的权限系统
    Django中使用ModelForm实现Admin功能
    Django中使用Bootstrap
    Django的用户认证
    vtkMapper
  • 原文地址:https://www.cnblogs.com/Drenight/p/8611218.html
Copyright © 2020-2023  润新知