字符串
文章平均质量分 58
Cymbals
Public void effect()
展开
-
hdu1711 记录一个kmp模板
Given two sequences of numbers : a[1], a[2], …… , a[N], and b[1], b[2], …… , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). Your task is to find a number K which make a[K] = b[1], a[K + 1] = b...原创 2018-03-02 23:38:17 · 252 阅读 · 0 评论 -
2019 ICPC WorldFinal G.First of Her Name(trie上建sam/ac自动机)
In the Royal Family, names are very important! As the Royal Historian you have been charged with analyzing the patterns in the names of the Royal Ladies in the realm.There have been nn Royal Ladies, ...原创 2019-04-15 20:11:29 · 980 阅读 · 1 评论 -
当你试图把一个设计成O(n²)解答的题优化到O(n)
Description叉叉哥哥最近要考CET-2048,俗称大学英语2048级。为了备考CET-2048,叉叉哥哥每天都跑学校图书馆学习,哦不,复习。今天,叉叉哥哥拿出了一本厚厚的单词本,打算背单词。在背单词的过程中,叉叉哥哥发现,某些单词看起来就很优美,某些则丑到忧伤。这些优美的单词有这样一个特征:在不打乱单词中字母顺序的前提下,将单词切成三部分,如果第一部分跟第二部分不同,同时第二部分跟第...原创 2019-03-29 14:39:45 · 266 阅读 · 0 评论 -
Codeforces Round #299 D. Tavas and Malekas(exKMP)
题意读一年…真的很难懂。首先告诉你有一个未知的串s,然后给你诸多这个s串的信息:给一个p串,并且告诉你这个p串在s串中出现了m次,而且给出了这m次的出现位置。在s串全部由小写字母组成的前提下,问这个s串有多少种构造方法。根据题意,是要求出所有可以任意放26个字母的位置个数x,答案就是26的x次方。然后思考无法构造s串的情况,那么有两种情况,最显然的一种是最后一个位置,如果给出的最后一个位置...原创 2018-12-05 13:14:37 · 388 阅读 · 0 评论 -
2018南京icpc M.Mediocre String Problem(exKMP or SAM)
题目:给串s和串t,求从s中取一个子串,再和t的一个前缀拼接起来能组成回文串的个数,要求从s取的子串比取的t的前缀长。可以用扩展kmp+回文算法做,也可以用sam替代扩展kmp,但是很难写。回文算法用马拉车和回文树都可以,但是这里要求的是“从当前位置开始有多少回文串”,马拉车的数组要经过处理才能用,回文树就可以直接用了…果然回文树各种方面都完爆马拉车,只是有点长。可以用扩展kmp求出s串的...原创 2018-12-02 15:48:02 · 619 阅读 · 1 评论 -
存一个hash板子
struct Hash { ull hs[maxn], hs2[maxn]; ull p[maxn], p2[maxn]; int seed = 31, seed2 = 233; void init(char *s) { p[0] = p2[0] = 1; hs[0] = hs2[0] = s[0] - 'a'; for(int i = 1, c; s[i]; i++) {...原创 2018-11-06 22:02:56 · 273 阅读 · 0 评论 -
ACM/ICPC 2018亚洲区预选赛北京网络赛 B.Tomb Raider(暴力)
Lara Croft, the fiercely independent daughter of a missing adventurer, must push herself beyond her limits when she discovers the island where her father disappeared. In this mysterious island, Lara f...原创 2018-09-28 11:46:51 · 313 阅读 · 0 评论 -
Codeforces Round #501 (Div. 3) B.Obtaining the String
这题我不会做…..打的时候想破头也没想出怎么做。补题,研究了一下cf的ac代码,发现只需要暴力把不一样的字符换过来就好了……什么都不用去考虑…………呃,原来这样就可以了么?那就这样吧,是我脑子坏了……ac代码:#include<bits/stdc++.h>using namespace std;int main() { int n, index =...原创 2018-08-05 22:04:45 · 181 阅读 · 0 评论 -
NERC 12 H. Hyperdrome
Hypergnome planet is famous for its Great Universal Games between gnomes — the Games between gnomes from each part of the galaxy in various disciplines. The most popular discipline in the Games is th...原创 2018-07-29 17:42:04 · 574 阅读 · 0 评论 -
HDU 3374 String Problem (字符串最大最小表示法模板)
Give you a string with length N, you can generate N strings by left shifts. For example let consider the string “SKYLONG”, we can generate seven strings: String Rank SKYLONG 1 KYLONGS 2 YLONGS...原创 2018-05-14 20:21:05 · 219 阅读 · 0 评论 -
Java后缀自动机模板
完美封装,改改直接用。public class SuffixAutomaton { public static class State { int length; int link; int[] next = new int[128]; { Arrays.fill(next, -1); } int endpos; L...转载 2018-05-19 22:57:13 · 410 阅读 · 0 评论 -
KMP-next数组的花式使用
kmp算法,是用来优化字符串的模式匹配(源串s中是否存在模式串p),可以把暴力匹配的复杂度O(n²)降低到O(m+n)。通过对模式串生成前缀数组(next数组),来跳跃式的进行模式匹配,解决如HDU 1711(http://acm.hdu.edu.cn/showproblem.php?pid=1711)这样的问题。我们一般使用的是把next[0]标记为负数(-1)的修正版kmp。但是kmp...原创 2018-05-10 18:04:55 · 481 阅读 · 0 评论 -
2018华工赛 E-Youhane Assembler(暴力水过)
最长公共前后缀查询问题 我们给出一个字符串的集合,在这个集合中有个字符串,编号为的字符串的长度为。我们给出个查询,每个查询是一个整数对,表示我们假定号串在左边,号串在右边,我们要查询的是最大的长度使号串的前缀与号串的后缀相等。如我们有串:”ACGT”、”AACCGGTT”、“AAAA”,则查询(2,3)的结果为0,因为”AAAA”在右面欲与左面的”AACCGGTT”进行拼接,显然并没有公共的...原创 2018-04-08 14:44:42 · 386 阅读 · 0 评论 -
做两道sam+线段树合并的题
mark。进度1/2#include <bits/stdc++.h>using namespace std;typedef pair<int, int> pii;typedef long long ll;const int maxn = 6e5 + 5;int n, q;string s, pp;pii cmp(pii a, pii b) { ...原创 2019-05-06 15:02:07 · 395 阅读 · 2 评论