【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 的每个点在各种时间的操作. 然后线段树合并一番,线段树维护前缀最大值,就是维护最大子段和 ...
随机推荐
- .Net MVC 实现长轮询
什么是长轮询? 长轮询是“服务器推”技术实现方式的一种,可以将服务端发生的变化实时传送到客户端而无须客户端频繁的地刷新.发送请求. 长轮询原理? 客户端向服务器发送Ajax请求,服务器接收到请求后,保 ...
- 【题解】51nod1327 棋盘游戏
那天和机房的同学们一起想了很久,然而并没有做出来……今天看了题解,的确比较巧妙,不过细细想来其实规律还是比较明显,在这里记录一下~ 当天自己做的时候,主要想到的是两点 : 1.按列dp 2.对行进行排 ...
- 【以前的空间】bzoj1009 [HNOI2008]GT考试
动态规划+kmp+矩阵快速幂 关于这题可以写出一个dp方程(f[i,j]表示准考证前i位中后j位为不吉利的数字的前j位的情况的个数) f[i,j]=Σf[i-1,k],其中j表示不吉利数字前k个数字加 ...
- [Leetcode] powx n x的n次方
Implement pow(x, n). 题意:计算x的次方 思路:这题的思路和sqrt的类似,向二分靠近.例如求4^5,我们可以这样求:res=4.4*4^4.就是将每次在res的基础上乘以x本身, ...
- 背景建模技术(七):预处理(PreProcessor)模块
预处理(PreProcessor)模块是BgsLibrary中一个必选的模块,是真正进入背景建模算法的“预处理”过程,其主要功能包括‘去模糊’.‘获得灰度图’.'应用Canny算子‘等可选模块. 下面 ...
- Intervals ZOJ - 3953 (区间贪心)
Chiaki has n intervals and the i-th of them is [li, ri]. She wants to delete some intervals so that ...
- 人工智能----TensorFlow开篇简介
Artificial Intelligence,也就是人工智能.TensorFlow是Google在2015年底开源的项目 TensorFlow的论文地址:http://download.tensor ...
- Mabatis(2) 全局配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC & ...
- 数据结构:Rope
以BZOJ1507为例,这里仅仅展示动态区间问题的一些典型操作,包括插入删除和修改,查询的话不支持按顺序查询 使用起来很简单很方便 #include<cstdio> #include< ...
- LightOJ 1341 - Aladdin and the Flying Carpet 基本因子分解
http://www.lightoj.com/volume_showproblem.php?problem=1341 题意:给你长方形的面积a,边最小为b,问有几种情况. 思路:对a进行素因子分解,再 ...