zoukankan      html  css  js  c++  java
  • BZOJ 4896: [Thu Summer Camp2016]补退选

    trie树+vector+二分

    别忘了abs(ans)

    #include<cstdio>
    #include<algorithm>
    #include<vector>
    #include<cstring>
    #include<cmath>
    #define mp make_pair
    #define pr pair<int,int>
    #define sc second
    using namespace std;
    int n,cnt,ch[6000005][11],sz[6000005],Max[6000005];
    vector<pr> stack[6000005];
    char s[65];
    int main(){
    	scanf("%d",&n);
    	int ans=0;
    	for (int ti=1; ti<=n; ti++){
    		int cas;
    		scanf("%d%s",&cas,s);
    		int len=strlen(s),x=0;
    		if (cas==1){
    			for (int i=0; i<len; i++){
    				if (!ch[x][s[i]-'a']) ch[x][s[i]-'a']=++cnt;
    				x=ch[x][s[i]-'a'];
    				sz[x]++;
    				if (sz[x]>Max[x]){
    					Max[x]=sz[x];
    					stack[x].push_back(mp(Max[x],ti));
    				}
    			}
    		}
    		else if (cas==2){
    			for (int i=0; i<len; i++){
    				x=ch[x][s[i]-'a'];
    				sz[x]--;
    			}
    		}
    		else{
    			for (int i=0; i<len; i++) x=ch[x][s[i]-'a'];
    			int a,b,c;
    			scanf("%d%d%d",&a,&b,&c);
    			int lim=(1ll*a*abs(ans)+b)%c;
    			lim++;
    			if (lim>Max[x]) ans=-1;
    			else{
    				int id=lower_bound(stack[x].begin(),stack[x].end(),mp(lim,0))-stack[x].begin();
    				ans=stack[x][id].sc;
    			}
    			printf("%d
    ",ans);
    		}
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    Spark 分布式环境---slave节点无法启动(已解决)
    Hadoop 分布式环境slave节点重启忽然不好使了
    Spark 2.2.0 分布式集群环境搭建
    arm-linux-gcc
    VS+QT创建一个OpenCV应用
    QT安装和vs2015使用
    DE1_MSEL
    Hog实例
    resize函数
    Hog特征
  • 原文地址:https://www.cnblogs.com/silenty/p/9905096.html
Copyright © 2011-2022 走看看