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\n",ans);
}
}
return 0;
}

  

最新文章

  1. LTP随笔——本地调用ltp之ltp4j
  2. 在树莓派上使用no-ip动态域名的方法,也适用其它Linux平台
  3. 固定定位fixed(IE6)
  4. [iOS微博项目 - 3.3] - 封装网络请求
  5. Eclipse中配置Tomcat碰到Server Tomcat v6.0 Server at localhost failed to start问题
  6. putty工具常见设置
  7. POJ 2594 Treasure Exploration(带交叉路的最小路径覆盖)
  8. word2vec 入门(三)模型介绍
  9. mysql获取各种日期
  10. 《网络编程》Unix 域套接字
  11. 基于visual Studio2013解决面试题之0501上台阶
  12. PHP控制连接打印机
  13. Android中ListView的简单使用
  14. .net经典书籍
  15. 学习笔记CB011:lucene搜索引擎库、IKAnalyzer中文切词工具、检索服务、查询索引、导流、word2vec
  16. 【手记】解决VS2017 git 拉取按钮灰色的问题
  17. link元素 rel src href属性
  18. Hadoop技术内幕1——源代码环境准备
  19. SpringMVC系列(十四)Spring MVC的运行流程
  20. zoj Continuous Login

热门文章

  1. MVC FileResult
  2. 《C#高效编程》读书笔记01-使用属性而不是可访问的数据成员
  3. bootstrap fileinput 上传文件
  4. 如何使用markdown编辑器编写文章
  5. SQL基本语法备忘
  6. dataset datatable datacolums datarow
  7. 机器学习经典算法之SVM
  8. java.lang.ClassCastException: com.ch.hibernate.Student_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
  9. JAVA小基础
  10. 【two pointers 细节题】cf1041dD. Glider