[BZOJ]2555 Substring 后缀自动机&LCT

MobaXterm终端工具个人学习版安装包及常用配置备份 资源包含 MobaXterm 个人版的安装包以及日常运维常用的基础配置备份文件。适用于网络工程师及运维人员用于日常的服务器管理、SSH 连接及串口调试。 压缩包内附带了个人整理的软件使用技巧与配置说明(仅供个人学习参考)。请各位同行下载后注意,技术工具请尽量支持官方正版,本资源仅供个人测试与交流使用,切勿用于商业环境。 立即下载

2555: SubString

Time Limit: 30 Sec   Memory Limit: 512 MB
Submit: 3115   Solved: 925
[ Submit][ Status][ Discuss]

Description

  
    懒得写背景了,给你一个字符串init,要求你支持两个操作
    
    (1):在当前字符串的后面插入一个字符串
    
    (2):询问字符串s在当前字符串中出现了几次?(作为连续子串)
    
    你必须在线支持这些操作。
    

Input

    第一行一个数Q表示操作个数
    
    第二行一个字符串表示初始字符串init
    
    接下来Q行,每行2个字符串Type,Str 
    
    Type是ADD的话表示在后面插入字符串。
    
    Type是QUERY的话表示询问某字符串在当前字符串中出现了几次。
    
    为了体现在线操作,你需要维护一个变量mask,初始值为0
   
    
    读入串Str之后,使用这个过程将之解码成真正询问的串TrueStr。
    询问的时候,对TrueStr询问后输出一行答案Result
    然后mask = mask xor Result  
    插入的时候,将TrueStr插到当前字符串后面即可。

HINT:ADD和QUERY操作的字符串都需要解压
   

Output

Sample Input

2

A

QUERY B

ADD BBABBBBAAB

Sample Output


0

HINT

 40 % 的数据字符串最终长度 <= 20000,询问次数<= 1000,询问总长度<= 10000

    

100 % 的数据字符串最终长度 <= 600000,询问次数<= 10000,询问总长度<= 3000000


新加数据一组--2015.05.20

   

Source

[ Submit][ Status][ Discuss]


HOME Back

  hh代码题...要求动态插入当然是用sam啦... 由sam里的parent的性质可以得到, 一个串的出现次数就是在sam里面跑出来到的节点的在parent树里的子树siz, 也就是到达点的 |right|. 由于要动态插入并且sam中会有砍掉par边, 加入par边的操作... 于是就想到用lct来维护啦. 这道题是有向图都不用makeroot... 虽然说是代码题但还是挺好写的, 也就100行.

  需要注意的细节: 在访问一个节点的w一定要记得先把标记传下来, 要不然就会得到错误的答案。 话说样例查询不存在的串, 加了串后又不查询是有多水? 不过还是帮我查出re233. 一发AC一颗赛艇.

#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e6 + 5;
string chars;
char ss[maxn];
int top, root, tot, mask, last, Q, ans;
int dep[maxn], w[maxn], tag[maxn], c[maxn][2], fa[maxn], s[maxn], a[maxn][26], par[maxn];
inline void decr(int mask) {
	scanf("%s", ss);
	chars = ss;
	for (int j = 0; j < chars.length(); ++ j) {
		mask = (mask * 131 + j) % chars.length();
		char t = chars[j];
		chars[j] = chars[mask];
		chars[mask] = t;
	}
}
inline bool isroot(const int &x) {
	return c[fa[x]][0] != x && c[fa[x]][1] != x;
}
inline void add(int x, int val) {
	if (x) w[x] += val, tag[x] += val;
}

inline void pushdown(int x) {
	if (tag[x]) {
		add(c[x][0], tag[x]), add(c[x][1], tag[x]);
		tag[x] = 0;
	}
}
inline void rotate(int x) {
	int y = fa[x], z = fa[y];
	int l = (c[y][1] == x), r = l ^ 1;
	if (!isroot(y)) c[z][c[z][1] == y] = x;
	fa[x] = z, fa[y] = x, fa[c[x][r]] = y;
	c[y][l] = c[x][r], c[x][r] = y;
}
inline void splay(int x) {
	top = 0;
	s[++ top] = x;
	for (int i = x; !isroot(i); i = fa[i]) s[++ top] = fa[i];
	for (int i = top; i; -- i) pushdown(s[i]);
	for (int f; !isroot(x); rotate(x))
		if (!isroot(f = fa[x]))
			rotate((c[fa[f]][0] == f ^ c[f][0] == x) ? x : f);
}
inline void access(int x) {
	for (int t = 0; x; x = fa[x])
		splay(x), c[x][1] = t, t = x;
}
inline void link(int x, int y) {
	fa[x] = y, access(y), splay(y), add(y, w[x]);
}
inline void cut(int x) {
	access(x), splay(x), add(c[x][0], -w[x]);
	fa[c[x][0]] = 0, c[x][0] = 0;
}
inline int query() {
	decr(mask);
	int len = chars.length(), p = 1;
	for (int j = 0; j < len; ++ j)
		if (!(p = a[p][chars[j] - 'A'])) return 0;
	splay(p);
	return w[p];
}
inline void insert(int c) {
	int p = last, np = last = ++ tot;
	w[np] = 1, dep[np] = dep[p] + 1;
	while (p && !a[p][c]) a[p][c] = np, p = par[p];
	if (!p) par[np] = root, link(np, root);
	else {
		int q = a[p][c];
		if (dep[q] == dep[p] + 1) par[np] = q, link(np, q);
		else {
			int nq = ++ tot;
			dep[nq] = dep[p] + 1;
			par[nq] = par[q], link(nq, par[q]);
			memcpy(a[nq], a[q], sizeof(a[q]));
			par[np] = par[q] = nq;
			cut(q), link(q, nq), link(np, nq);
			while (a[p][c] == q) a[p][c] = nq, p = par[p];
		}
	}
}
int main() {
	root = last = ++ tot;
	scanf("%d", &Q);
	scanf("%s", ss);
	for (register int i = 0; ss[i]; ++ i)
		insert(ss[i] - 'A');
	for (register int i = 0; i < Q; ++ i) {
		scanf("%s", ss);
		if (ss[0] == 'A') {
			decr(mask);
			int len = chars.length();
			for (int j = 0; j < len; ++ j)
				insert(chars[j] - 'A');
		} else {
			ans = query(), mask ^= ans;
			printf("%d\n", ans);
		}
	}
}


机械臂的「抽风」自救指南:从万向节死锁到毫米级丝滑抓取 立即下载

相关推荐

科技中介服务机构如何借助平台提升技术撮合服务的专业性与响应速度?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

省选专练(学习)后缀自动机SAM(超详细)

This is a SAM for string acadd 先谈我对后缀自动机的理解: 误解1:后缀自动机是识别字符串所有后缀的东西 这不完全正确,它可以识别所有子串,于是也可以识别所有后缀 误解2:这是一个nlogn的算法。 错误后缀自动机极限时间复杂度是O(n*2-1)比SA和S tree优 然后是后缀自动机可以干什么: 可以求LCS 什么?你说把他转成LIS跑nlogn...

LeoJAM的博客 411

产业园区如何利用AI技术提升科技成果转化服务的响应速度与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

[Codeforces]696D Legen... AC自动机 + 矩阵快速幂

D. Legen... time limit per test 6 seconds memory limit per test 256 megabytes input standard input output standard output Barney was hanging out with Nora for a while an

Le Petit Prince 1045

数学建模——相关系数(4)——斯皮尔曼相关系数(spearman)

文章目录引述斯皮尔曼相关系数(spearman)定义 引述 经过之前几节的学习,我们了解并掌握了皮尔逊相关系数。在学习中我们发现,皮尔逊相关系数的使用条件相当苛刻:两组变量必须是连续数据、呈现正态分布,且两者间必须成线性关系。如果我们在数学建模中拿到一组数据无法满足以上条件,那么有没有其他的方法去判断两组变量之间的相关性呢?答案是肯定的,它就是斯皮尔曼相关系数(spearman). 斯皮尔曼相关系...

东 6万+

运维面试常见问题

对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。优缺点:优点:利用索引可以加速对数据的检索,索引是可以唯一的,创建索引允许指定单个列或者多个列缺点:减慢了数据录入速度,同时也增加了数据库的尺寸大小。

asdmjy123的博客 1374

[BZOJ]2219 数论之神 离散对数 + 原根

2219: 数论之神Time Limit: 3 Sec Memory Limit: 259 MB Submit: 1052 Solved: 322 [Submit][Status][Discuss] Description在ACM_DIY群中,有一位叫做“傻崽”的同学由于在数论方面造诣很高,被称为数轮之神!对于任何数论问题,他都能瞬间秒杀!一天他在群里面问了一个神题: 对于给定的3个非负整

Le Petit Prince 973

Simulink实战:火电机组一次调频与AGC协同控制建模与仿真解析

本文详细解析了如何使用Simulink进行火电机组一次调频与AGC协调控制的建模与仿真。通过系统架构设计、参数设置和模块实现,阐述了如何实现两者的协同控制,确保电网频率稳定。文章提供了实用的建模技巧、参数整定经验和性能评估方法,为电力系统仿真工程师提供了有价值的实践指导。

c7d8e9的博客 308

[BZOJ]2427 软件安装 O(nm)树形背包

2427: [HAOI2010]软件安装 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1913  Solved: 757 [Submit][Status][Discuss] Description 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机

Le Petit Prince 940

01-SA8155P 冷启动强制进入EDL模式

冷启动EDL模式

静虚待令,有物混成 3089

STM32 ES8266上阿里云IOT MQTT实践【第七章】:ESP8266+MQTT上阿里云物联网平台实践

本篇文章讲述了如何使用stm32接入阿里云IOT,WiFi模块为ESP8266,可以实现发布以及订阅。

超级大洋葱的博客 2万+

[BZOJ]4709 柠檬 DP单调性优化 + 单调栈

4709: [Jsoi2011]柠檬 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 252  Solved: 111 [Submit][Status][Discuss] Description Flute 很喜欢柠檬。它准备了一串用树枝串起来的贝壳,打算用一种魔法把贝壳变成柠檬。贝壳一共有 N (1 ≤ N  ≤ 100,000)

Le Petit Prince 910

Python+ArcGIS实战:5步搞定土壤类型预测(附随机森林模型配置技巧)

本文详细介绍了如何结合Python与ArcGIS,利用随机森林模型进行土壤类型预测。通过5个核心步骤——数据预处理、样本创建、模型构建、空间预测与精度验证,构建了一套自动化、高精度的空间预测工作流,并提供了关键的模型配置与调参技巧,助力GIS开发者高效完成土壤制图任务。

weixin_29227585的博客 396

[BZOJ]3159 决战 LCT&Splay

3159: 决战 Time Limit: 10 Sec  Memory Limit: 512 MB Submit: 420  Solved: 183 [Submit][Status][Discuss] Description Input 第一行有三个整数N、M和R,分别表示树的节点数、指令和询问总数,以及X国的据点。 接下来N-1行,每行两个整数X和Y,表示Kat

Le Petit Prince 877

Xftp卸载报错1628终极解决指南:深入解析InstallShield残留问题

本文深入解析了Xftp卸载时遇到的1628错误,其根源在于InstallShield安装引擎的残留问题。文章提供了从手动清理注册表项到彻底删除隐藏安装备份文件夹的完整解决方案,并给出了防患于未然的实用建议,帮助用户彻底解决这一经典安装报错。

weixin_29276847的博客 336

【Cadence】stb仿真和ac仿真——以一个简单的全差分反相放大器仿真为例

最近在补一些仿真方法学的问题,以及一些一直以来都有点模糊的概念,简单记录一下。搭建一个以两个CMOS反相器构成的全差分放大器(28nm工艺,PMOS和NMOS尺寸一致)激励的设置方便共模和差模仿真用同一个TB(这里有一个问题:这个放大器需要在开环下仿真还是闭环下?哪些放大器应用在开环,哪些闭环?这种应用场景不同会导致需要仿真得到开环还是闭环增益,或者环路增益?(我知道放大器在设计的时候肯定都是闭环应用的多,但是什么时候没必要闭环应用?光验证ac和stb仿真是否一样的话有必要有回路吗?

weixin_44951108的博客 5万+

[BZOJ]4555 [TJOI2016&HEOI2016] 求和 第二类斯特林数 + NTT

4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec  Memory Limit: 128 MB Submit: 525  Solved: 418 [Submit][Status][Discuss] Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心。 现在他想计算这样一个函数的值: S(i, j)表示第二

Le Petit Prince 849

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[BZOJ]2179 FFT快速傅立叶 FFT模板

2179: FFT快速傅立叶 Time Limit: 10 Sec  Memory Limit: 259 MB Submit: 3709  Solved: 1970 [Submit][Status][Discuss] Description 给出两个n位10进制整数x和y,你需要计算x*y。 Input 第一行一个正整数n。 第二行描述一个位数为n的正整数x。 第三行描述一个

Le Petit Prince 813

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[BZOJ]4570 [SCOI2016] 妖怪 凸包 + 双钩函数求最值

4570: [Scoi2016]妖怪 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1025  Solved: 288 [Submit][Status][Discuss] Description 邱老师是妖怪爱好者,他有n只妖怪,每只妖怪有攻击力atk和防御力dnf两种属性。邱老师立志成为妖怪大师,于 是他从真新镇出发,踏上未知的旅

Le Petit Prince 711

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[BZOJ]3489 A simple rmq problem 主席树套树

3489: A simple rmq problemTime Limit: 40 Sec Memory Limit: 600 MB Submit: 2074 Solved: 708 [Submit][Status][Discuss] Description因为是OJ上的题,就简单点好了。给出一个长度为n的序列,给出M个询问:在[l,r]之间找到一个在这个区间里只出现过一次的数,并且要求找的

Le Petit Prince 668

[BZOJ]2648 SJY摆棋子 KD-Tree

2648: SJY摆棋子 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 5049  Solved: 1762 [Submit][Status][Discuss] Description 这天,SJY显得无聊。在家自己玩。在一个棋盘上,有N个黑色棋子。他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离

Le Petit Prince 656

[51NOD]1288 序列求和 V4 拉格朗日插值法

就是让你求自然数幂之和嘛... 我们发现指数很小但是n很大. 本来这个东西用第一类斯特林数来搞简直极品, 因为模数都可以不是质数... 但是这道题k是万级别的, O(k ^ 2)过不了, 但是这样伯努利数不是也过不了吗? 不过好像可以NTT搞事情.   不过我们用拉格朗日插值法可以做到O(k), 因为这个和他实际上是一个k+1项多项式, 那我们插1 ~ k +2个值进去, 得到了拉格朗日插值式,

Le Petit Prince 649

[BZOJ]1814 Ural 1519 Formula 1 插头DP

1814: Ural 1519 Formula 1 Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 879  Solved: 328 [Submit][Status][Discuss] Description Regardless of the fact, that Vologda could not get rights to hold

Le Petit Prince 644

[BZOJ]1095 捉迷藏 动态点分治(点分树)

1095: [ZJOI2007]Hide 捉迷藏Time Limit: 40 Sec Memory Limit: 256 MB Submit: 4152 Solved: 1756 [Submit][Status][Discuss] Description  捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩 捉迷藏游戏。他

Le Petit Prince 629

[Codeforces]86C Genetic engineering AC自动机 + DP

这道题之前YYR出过, 最近重做AC自动机于是又来旧题重做一下~   题目大意就是说给你m个字符串, 然后让你统计长度为n的并且由这m个字符串中的一些字符串紧凑拼成的字符串有多少个. 什么叫紧凑拼成? 可以理解为这个字符串包含这m个字符串中的一些, 相邻之间可以互相重叠但是不能有间隔——也就是说这个字符串的每一个字符一定要至少被给定的m个字符串之一覆盖.   这种计数方案数肯定要想到dp.

Le Petit Prince 615

[BZOJ]2064 分裂 状压DP 思路神题

2064: 分裂 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 652  Solved: 401 [Submit][Status][Discuss] Description 背景: 和久必分,分久必和。。。 题目描述: 中国历史上上分分和和次数非常多。。通读中国历史的WJMZBMR表示毫无压力。 同时经常搞OI的他把这个变成了一个数学

Le Petit Prince 611
上一篇: [BZOJ]3926 [ZJOI2015] 诸神眷顾的幻想乡 广义后缀自动机
下一篇: [BZOJ]2124 等差子序列 Hash&树状数组
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值