BZOJ 4896 :[Thu Summer Camp2016]补退选 Trie树+Vector
4896: [Thu Summer Camp2016]补退选
Time Limit: 20 Sec Memory Limit: 512 MB
Submit: 315 Solved: 97
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 lcaq
3 lca 0 0 5
1 lcq
3 lc 0 1 5
2 lcaq
3 lc 0 1 5
Sample Output
3
3
HINT
n<=100000,字符串长度 <= 60,输入中的所有字符串只会包含前 10 个小写字母
Source
想法:Trie上每个节点挂一个Vector,存下每个数量最早到达事件。$O(\sum len)$
#include<cstdio>
#include<cstring>
#include<vector> typedef long long ll;
template<class T>
inline void read(T&x)
{
x=;bool f=;char c=getchar();
while((c<''||c>'')&&c!='-') c=getchar();if(c=='-')f=, c=getchar();
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
x=f?-x:x;
}
const int MAXN();
struct Trie
{
int nx[],now;
std::vector<int>last;
}trie[MAXN];int ktot=;
int n,leng,k;
ll a,b,c,Ans;char str[];
void update(int k,int y,int pos)
{
trie[k].now+=y;
if((int)trie[k].last.size()==trie[k].now)
trie[k].last.push_back(pos);
}
void insert(int y,int pos)
{
int k=;
for(int i=;i<=leng;i++)
{
if(!trie[k].nx[str[i]-'a']){trie[k].nx[str[i]-'a']=++ktot;trie[ktot].last.push_back();}
k=trie[k].nx[str[i]-'a'];
update(k,y,pos);
}
}
int query(int limt)
{
int k=;
for(int i=;i<=leng;i++)
{
if(!trie[k].nx[str[i]-'a'])return -;
k=trie[k].nx[str[i]-'a'];
}
if((int)trie[k].last.size()<=limt)return -;
else return trie[k].last[limt];
}
int main()
{
// freopen("C.in","r",stdin);
read(n);
for(int i=;i<=n;i++)
{
read(k);
scanf("%s",str+);leng=strlen(str+);
if(k==)insert(,i); else
if(k==)insert(-,i); else
{
read(a);read(b);read(c);
Ans=((ll)a*Ans+b)%c;
Ans=query(Ans+);
printf("%lld\n",Ans);
Ans=Ans<?-Ans:Ans;
// fprintf(stderr,"!\n");
}
// fprintf(stderr,"fuck\n");
}
return ;
}
BZOJ 4896 :[Thu Summer Camp2016]补退选 Trie树+Vector的更多相关文章
- 【BZOJ4896】[Thu Summer Camp2016]补退选 Trie树
[BZOJ4896][Thu Summer Camp2016]补退选 Description X是T大的一名老师,每年他都要教授许多学生基础的C++知识.在T大,每个学生在每学期的开学前都需要选课,每 ...
- BZOJ 4896: [Thu Summer Camp2016]补退选
trie树+vector+二分 别忘了abs(ans) #include<cstdio> #include<algorithm> #include<vector> ...
- 【bzoj4896】[Thu Summer Camp2016]补退选 Trie树+STL-vector
题目描述 X是T大的一名老师,每年他都要教授许多学生基础的C++知识.在T大,每个学生在每学期的开学前都需要选课,每次选课一共分为三个阶段:预选,正选,补退选:其中"补退选"阶段最 ...
- BZOJ4896 [Thu Summer Camp2016]补退选 【trie树】
题目链接 BZOJ4896 题解 \(thu\)怎么那么喜欢出\(trie\)树的题... 我们当然可以按题意模拟建\(trie\) 询问的时候,由于存在删除操作,不满足单调性,不能直接二分答案 我们 ...
- BZOJ 4896 [Thusc2016]补退选 (Trie树维护vector)
题目大意:略 这竟然是$thusc$的题... 先把询问里加入的串全拎出来,建出$Trie$树,$Trie$里每个节点都开一个$vector$记录操作标号,再记录操作数量$sum$ 然后瞎**搞搞就行 ...
- BZOJ4896 [Thu Summer Camp2016]补退选
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- [Thu Summer Camp2016]补退选
题目描述不说了. 题解: Trie+vector…… Trie存学生,vector存答案. 极为无脑但无脑到让人怀疑 代码: #include<cmath> #include<vec ...
- [BZOJ4896][THUSC2016]补退选(Trie)
4896: [Thu Summer Camp2016]补退选 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 653 Solved: 228[Subm ...
- LOJ 2991 「THUSC 2016」补退选——trie+线段树合并或vector
题目:https://loj.ac/problem/2291 想了线段树合并的做法.就是用线段树维护 trie 的每个点在各种时间的操作. 然后线段树合并一番,线段树维护前缀最大值,就是维护最大子段和 ...
随机推荐
- select2,利用ajax高效查询大数据列表(可搜索、可分页)
二.导入css和js到网站上 1.使用CDN,节省自己网站的流量 ? 1 2 <link href="https://cdnjs.cloudflare.com/ajax/libs/se ...
- C# 生成word 文档 代码 外加 IIS报错解决方案
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- HDU - 6344 2018百度之星资格赛 1001调查问卷(状压dp)
调查问卷 Accepts: 1289 Submissions: 5642 Time Limit: 6500/6000 MS (Java/Others) Memory Limit: 262144 ...
- IOSerialize,xml和json,soap序列化器,二进制序列化器,XML序列化器,文件 检查、新增、复制、移动、删除
1 文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/读取配置文件3 三种序列化器4 xml和json1.文件夹/文件 检查.新增.复制.移动.删除,2 文件读写,记录文本日志/ ...
- qemu编译
符号说明 $ 表示在用户模式下执行命令 # 表示在root模式下执行命令 ### 表示注释用于解释接下来一条命令的作用 更新环境源 设置阿里源 $ sudo mv /etc/yum.repos.d/C ...
- iscsi使用教程
服务端 服务器环境 已经安装过qemu-img的32位ubuntu $ uname -a Linux ubuntu-virtual-machine 3.13.0-46-generic #76-Ubun ...
- python矩阵相加
举个栗子: # 两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵: # 使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中. import n ...
- 动画重定向技术分析和Unity中的应用
http://www.jianshu.com/p/6e9ba1b9c99e 因为一些手游项目需要使用Unity引擎,但在动画部分需要使用重定向技术来实现动画复用,考虑到有些项目开发人员没有过这方面的经 ...
- BZOJ2388:旅行规划(travel)——分块凸包
题目 OIVillage 是一个风景秀美的乡村,为了更好的利用当地的旅游资源,吸引游客,推动经济发展,xkszltl 决定修建了一条铁路将当地 $n$ 个最著名的经典连接起来,让游客可以通过火车从铁路 ...
- python爬虫——web前端基础(1)
1.HTML的基本结构 <html>内容</html>:HTML文档是由<html></html>包裹,这是HTML文档的文档标记,也称为HTML开始标 ...