【bzoj4896】补退选
傻逼题。
每个点维护下vector,然后随便做。
#include<bits/stdc++.h>
const int N=;
using namespace std;
typedef long long ll;
struct Node{
int ch[],size;
vector<int> c;
}t[N];
int n,cnt,ans,len;char s[];
inline int read(){
int f=,x=;char ch;
do{ch=getchar();if(ch=='-')f=-;}while(ch<''||ch>'');
do{x=x*+ch-'';ch=getchar();}while(ch>=''&&ch<='');
return f*x;
}
inline void ins(char *s,int id){
int now=;
for(int i=;i<len;i++){
int v=s[i]-'a';
if(!t[now].ch[v])t[now].ch[v]=++cnt;
now=t[now].ch[v];t[now].size++;
if(t[now].size>t[now].c.size())t[now].c.push_back(id);
}
}
inline void del(char *s){
int now=;
for(int i=;i<len;i++){
int v=s[i]-'a';now=t[now].ch[v];
t[now].size--;
}
}
inline int query(char *s){
int now=,v;
for(int i=;i<len&&now;i++)v=s[i]-'a',now=t[now].ch[v];
int a=read(),b=read(),c=read();
a=(1LL*a*ans+b)%c;
if(!now||a>t[now].c.size()){
ans=;
return -;
}
ans=t[now].c[a];
return ans;
}
int a,b,c,opt;
int main(){
n=read();cnt=;
for(int i=;i<=n;i++){
opt=read();scanf("%s",s);len=strlen(s);
if(opt==)ins(s,i);
if(opt==)del(s);
if(opt==)printf("%d\n",query(s));
}
}
【bzoj4896】补退选的更多相关文章
- bzoj4896 补退选
		
Description X是T大的一名老师,每年他都要教授许多学生基础的C++知识.在T大,每个学生在每学期的开学前都需要选课,每 次选课一共分为三个阶段:预选,正选,补退选:其中"补退选& ...
 - 【BZOJ4896】[Thu Summer Camp2016]补退选 Trie树
		
[BZOJ4896][Thu Summer Camp2016]补退选 Description X是T大的一名老师,每年他都要教授许多学生基础的C++知识.在T大,每个学生在每学期的开学前都需要选课,每 ...
 - [BZOJ4896][THUSC2016]补退选(Trie)
		
4896: [Thu Summer Camp2016]补退选 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 653 Solved: 228[Subm ...
 - 【bzoj4896】[Thu Summer Camp2016]补退选  Trie树+STL-vector
		
题目描述 X是T大的一名老师,每年他都要教授许多学生基础的C++知识.在T大,每个学生在每学期的开学前都需要选课,每次选课一共分为三个阶段:预选,正选,补退选:其中"补退选"阶段最 ...
 - BZOJ 4896 :[Thu Summer Camp2016]补退选 Trie树+Vector
		
4896: [Thu Summer Camp2016]补退选 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 315 Solved: 97[Submi ...
 - BZOJ4896 [Thu Summer Camp2016]补退选
		
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
 - BZOJ4896 THUSC2016补退选(trie)
		
字符串扔进trie,vector记录每个前缀出现次数的最大值的更新记录即可. #include<iostream> #include<cstdio> #include<c ...
 - BZOJ4896 [Thu Summer Camp2016]补退选  【trie树】
		
题目链接 BZOJ4896 题解 \(thu\)怎么那么喜欢出\(trie\)树的题... 我们当然可以按题意模拟建\(trie\) 询问的时候,由于存在删除操作,不满足单调性,不能直接二分答案 我们 ...
 - LOJ 2991 「THUSC 2016」补退选——trie+线段树合并或vector
		
题目:https://loj.ac/problem/2291 想了线段树合并的做法.就是用线段树维护 trie 的每个点在各种时间的操作. 然后线段树合并一番,线段树维护前缀最大值,就是维护最大子段和 ...
 
随机推荐
- 【bzoj1076】[SCOI2008]奖励关  期望dp+状态压缩dp
			
题目描述 你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关.在这个奖励关里,系统将依次随机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再 ...
 - 【题解】CF#229 E-Gifts
			
尽管是一道E题,但真心并不很难~不难发现,有一些物品是一定要被选择的,我们所需要决策的仅仅只有那几个有重复价值的物品. 而不同名字之间的概率并不互相影响,所以我们有 \(f[i][j]\) 表示名字为 ...
 - Android 解决setRequestedOrientation之后手机屏幕的旋转不触发onConfigurationChanged方法
			
最近在做播放器的时候遇到一个问题,在屏幕方向改变之后需要切换播放器全屏/非全屏的时候,在重写了onConfigurationChanged方法并在manifest.xml配置文件中添加 android ...
 - BZOJ2434 [Noi2011]阿狸的打字机  【AC自动机 + fail树 + 树状数组】
			
2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec Memory Limit: 256 MB Submit: 3610 Solved: 1960 [Submit][S ...
 - 20165218 预备作业3 Linux安装及学习
			
Linux安装及学习 第二节 基本概念及操作 1. 关于图形界面 Linux本身是没有图形界面的,对于初学者来说,这或许是其与Windows系统最直观的差别.Linux所呈现给用户的实际上是一个实现图 ...
 - Apache 403 错误解决方法-让别人可以访问你的服务器(转)
			
有一次做好了一个效果放在自己电脑的服务器上,让同学查看(同处于校园网中),却不知apache一直显示403 错误,对方没有权限访问,我知道这应该是配置文件httpd.conf中的问题,网上搜了一下其他 ...
 - 牛客326B 背单词
			
传送门:https://ac.nowcoder.com/acm/contest/326/B 题意:给你一个n,你需有找有多少个长度从1~n 的单词,满足最长连续元音少于A个并且最长连续辅音长度少于B. ...
 - ufw坑
			
ufw就是一个iptables的快捷应用.今天被这个给坑了. 一个同时没事随便修改ufw,结果ssh登陆不上,ldap什么的都被阻断了. 直接iptables -F,结果忘了修改policy,直接没法 ...
 - CMDB资产管理系统开发【day26】:CMDB上节回顾
			
一.上节知识点回顾 服务器设计了一个表结构 开发了一个客户端 二.后台创建缓存区表 客户端连接服务器,在服务器的下面看报错信息 因为URL都没有写,所以我找不到呀 1.在MadKing\url.py ...
 - 痛苦之旅——安装Eric4
			
因为想做桌面程序,所以在学PyQt4, 顺便装了下Eric4,这Eric4装起来可不简单,活活花了一个星期..... 网上有很多装Eric4的教程,详细我就不说了,大概步骤是: 1.安装SIP (需要 ...