• 五一集训Day2


    五一集训Day2

    A

    转化后的题意是维护带删除线性基,2e7个操作(插入和删除),并在每次操作完后求线性基的大小。

    我们把每个添加操作的数的存在时间区间求出来,题意保证了每个数不会同时有两个。在插入的时候同时维护线性基上每一位的删除时间Ti,使得Ti由高往低递减。这样在删除的时候只会删除最低位的,不会造成影响,所以直接删。具体方法是插入一个数的时候,如果当前位有值(ai)且Ti<Tnow,把当前的值和时间都换成这一位的,然后正常构造。这样仍能满足线性基的性质(最小,能表示出所有数)

    这个trick挺实用的,贴一下代码。

    namespace solve3{
    	
    	    int a[32],T[32];int tt;
    	    inline void insert(int x,int t){
    	        for(int i=31;i>=0;--i){
    	            if((x>>i)&1){
    	                if(a[i]==0){
    	                    a[i]=x;
    	                    T[i]=t;
    	                    tt++;
    	                    break;
    	                }else{
    	                	if(t>T[i]){
    	                		swap(a[i],x);
    	                		swap(t,T[i]);
    						}
    					} 
    	                x^=a[i];
    	            }
    	        }
    	    }
    	    void del(int x){
    	    	for(int i=31;i>=0;--i){
    	    		if(T[i]==x){
    	    			a[i]=T[i]=0,tt--;break;
    				}
    			}
    		}
    	    inline int getans(){
    	        return tt;
    	    }
    	unordered_map<int,int>mp;int las[N];
    	int p[N],w[N];
    	void solve(){
    		FOR(i,1,q){
    			int opt=read(),x=read();p[i]=opt;w[i]=x;
            	if(opt^2){
    	            las[i]=q+1;
    	            mp[x]=i;
    	        }
    	        else{
    	        	las[mp[x]]=i;
    	        }
    	    }
    	 	FOR(i,1,q){
    	 		if(p[i]^2){
    	 			insert(w[i],las[i]);
    			 }else del(i);
    			 ans^=(1<<(n-getans()));
    			 //printf("%d
    ",(1<<(n-lb.getans())));
    		}
            print(ans);
    	}
    }
    

    C

    [ans(l,r)=prod_{ ext{p is a prime}}prod_{k>0}(P^k)^{f(p^k)-f(p^{k+1})} ]

    [=prod_{ ext{p is a prime}}p^{sum_{k>0}k(f(p^k)-f(p^{k+1}))} ]

    [=prod_{ ext{p is a prime}}p^{sum_{k>0}f(p^k)} ]

    于是莫队可以(NM^{0.5}logW),考虑继续优化

    首先预处理出每个数的大质数因子,莫队直接算

    然后预处理每个(p^k)的倍数的前缀和,个数为(O(frac {sqrt w}{log w} ))

    总复杂度为(O((N+M)frac {sqrt w}{log w}))

    B

    每次枚举一个不相交与当前集合的子集,令这个集合的元素值相等。我们从小到大枚举子集的值,显然这个值不超过每个元素上限的最小值。总复杂度(O(3^N*N)),FWT可以做到(O(2^N*N^3)),不是很会...

  • 相关阅读:
    poi 导出excel表格
    js 表单非空校验
    表格添加 点击添加增加一列
    date日期比较
    oralce 匿名块 练习
    SQL 入门
    Map集合&&异常处理&&file类
    Properties集合&&工具类FileUtils
    Java中Date类&&Calendar类
    jquery的基础
  • 原文地址:https://www.cnblogs.com/lcyfrog/p/12824797.html
Copyright © 2020-2023  润新知