"C Cow and Message" 对于字符串问题,如果对于下标进行操作复杂度很大的话,可以考虑对字母进行操作,这样计算复杂度的时候就是对26进行计算了。 ...
分类:
其他好文 时间:
2020-03-03 12:52:12
阅读次数:
76
"原题链接" 不会$\text{SAM}$的蒟蒻只好用$\text{SA}$来水了。 先读懂题意(窝在读题意这儿花了快$20$min). 简单来说,是给你一个字符串,然后给你两个区间的集合$A,B$,一共有$m$组$A_i$到$B_j$的支配关系。若$A_i,B_j$有支配关系,则从$A_i$到$B ...
分类:
其他好文 时间:
2020-03-01 12:27:55
阅读次数:
85
"Link" $u$支配$v$则连边$A_u\rightarrow B_v$。 若$B_u$是$A_v$的前缀则连边$B_u\rightarrow A_v$。 那么我们要求的就是这张图的点权最长路,拓扑排序+dp即可。 考虑如何优化建图。 先建出反串的SAM。 然后对于给定的子串$s_{l,r}$, ...
分类:
其他好文 时间:
2020-02-18 20:48:43
阅读次数:
116
"华为研发工程师编程题" 【C++】【Python】【数学】【数组】【字符串】 问题1 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝 ...
分类:
编程语言 时间:
2020-02-17 21:21:32
阅读次数:
105
对于大多数子字符串问题,我们给了一个字符串,需要找到一个满足某些限制的子字符串。通常的方法是使用带有两个指针的哈希表。模板如下。 需要提到的一件事是,当要求找到最大子串时,我们应该在内部while循环之后更新最大值,以确保子串有效。另一方面,当要求找到最小子串时,我们应该在内部while循环内更?? ...
分类:
其他好文 时间:
2020-02-08 13:38:22
阅读次数:
71
面试题58:翻转字符串 问题描述 问题(1) 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。 例如输入字符串"I am a student. ",则输出"student. a am I"。 问题(2)左旋转字符串 字符串的左旋转 ...
分类:
其他好文 时间:
2020-02-01 19:15:35
阅读次数:
112
妈耶,,,被B题卡到哭,C题一发就过了。。。 字符串问题。首先用vector记录每个字符出现的位置,然后对字符串t的每个字符,用二分查找函数查找,注意用upper_bound查找,对于字符i,首先用变量pre记录第i-1个字符的位置。然后第i个字符的位置只能比 第i-1个字符位置大,所以用二分查一下 ...
分类:
其他好文 时间:
2020-01-30 22:42:45
阅读次数:
82
基本思想: 和示例思想相同,典型的字符串处理,注意即可,没啥新意; 关键点: 字符串问题; 1 #include<iostream> 2 #include<stdlib.h> 3 #include<stdio.h> 4 #include<vector> 5 #include<string> 6 #i ...
分类:
其他好文 时间:
2020-01-16 12:19:52
阅读次数:
46
"题意" 考虑一个$O(n^2)$暴力: 从每个$B$类串向以它为前缀的$A$类串连边,从每个$A$类串向它支配的$B$类串连边,每个$A$类串的点权为$A$串的长度,$B$类串的点权为$0$。 之后先判断这是不是个$DAG$,如果不是就输出$ 1$,不然就找最长链即可。 之后考虑怎么优化建图: 我 ...
分类:
其他好文 时间:
2020-01-06 21:16:03
阅读次数:
70
后缀自动机 (suffix automaton, SAM) 是一个能解决许多字符串相关问题的有力的数据结构。(否则我们也不会用它) 举几个例子,以下的字符串问题都可以在线性时间内通过 SAM 解决 1.在另一个字符串中搜索一个字符串的所有出现位置。(诶?KMP好像能做) 2.计算给定的字符串中有多少 ...
分类:
其他好文 时间:
2019-12-17 20:35:36
阅读次数:
102