CF126B】的更多相关文章

CF126B Password 题意: 给出一个字符串 H,找一个最长的字符串 h,使得它既作为前缀出现过.又作为后缀出现过.还作为中间的子串出现过. 解法: 沿着 $ next_n $ 枚举字符串,如果这个值在 $ next_I (i < n)$ 中出现合法. 预处理出 $ next $ 数组后记录那些值在 $ next $ 当中出现过,从 $ next_n $ 开始判断,如果不合法则从i 跳到 $ next_i $ 继续判断. CODE: #include<iostream> #in…
http://codeforces.com/contest/126/problem/B #include<bits/stdc++.h> using namespace std; const int M = 1e6 + 10 ; char s[M] ; int lens ; bool vis[M] ; int NEXT[M] ; void get_fail () { NEXT[0] = -1 ; for (int i = 1 , at = -1 ; i < lens ; i ++) { w…
Description Asterix,Obelix和他们的临时伙伴Suffix.Prefix已经最终找到了和谐寺.然而和谐寺大门紧闭,就连Obelix的运气也没好到能打开它. 不久他们发现了一个字符串S(|S|<=1000000),刻在和谐寺大门下面的岩石上.Asterix猜想那一定是打开寺庙大门的密码,于是就大声将字符串朗读了出来,然而并没有什么事发生.于是Asterix又猜想密码一定是字符串S的子串T. Prefix认为T是S的前缀,Suffix认为T是S的后缀,Obelix却认为T应该是…
http://acm.hdu.edu.cn/showproblem.php?pid=4763 http://codeforces.com/problemset/problem/126/B 这两个题都是在考察next的应用.区别在于一个是不能有重叠,一个是可以有重叠. 一级条件,前后缀都存在:二级条件 在之前存在前后缀. 对于可以重叠的,很简单,利用next记录一下前缀后缀都存在的那些点,然后跑一遍循环找一下这些满足一级条件的哪些满足二级条件,就ok了. 不可以重叠的,其实就是加了一个零级条件,判…
题目传送门 其实$Chemist$在之前写了非常棒的题解! 我长话短说,补充两句. “那么当$next[n]$>$max$时显然不能将$next[n]$作为最长子串的长度”这句话其实在说,因为一个合法的串结尾肯定在2~$n$-1中,而$next[n]$的结尾在$n$处,显然是达不到的.那么我们就要继续缩小范围.直到存在合法串. $next[n]$等于0时无解?根据$next$数组的含义,我们知道它连相同前缀和后缀的匹配不上(没有),何谈中间部分的子串? 输出的时候找到合法的地点就结束程序,防止多…
思路: kmp略作修改. 实现: #include <iostream> #include <cstdio> using namespace std; ; int neXt[MAXN]; void getNext(string s) { int n = s.length(); neXt[] = -; , j = ; while (j < n) { || s[j] == s[k]) { j++; k++; neXt[j] = k; } else { k = neXt[k]; }…
题目描述 给定一个字符串 \(S\),我们规定一个字符串 \(P\) 是可行解,\(P\) 需要满足: \(P\) 是 \(S\) 的前缀 \(P\) 是 \(S\) 的后缀 \(P\) 出现在 \(S\) 中既不是前缀也不是后缀的地方 题目要求出满足条件的长度最大的 \(P\),若存在输出该字符串,若不存在则输出Just a legend 数据范围:\(1\leq |S|\leq 10^6\) 解题思路 我们可以发现一个切入点: 对于我们找到的一个满足条件的字符串 \(P\),(假设它在 \(…
很久以前就学过KMP,不过一直没有深入理解只是背代码,今天总结一下KMP算法来加深印象. 一.KMP算法介绍 KMP解决的问题:给你两个字符串A和B(|A|=n,|B|=m,n>m),询问一个字符串在另一个字符串中的每一次出现位置. 暴力:枚举长串中的每一个起点,然后一位一位判断是否与短串完全相同,枚举复杂度是O(n),比较的复杂度是O(m),总的时间复杂度是O(nm),时间复杂度比较差 引入两个定义: 1.匹配串(A):被匹配的长串. 2.模式串(B):在匹配串中每次找出现位置的短串. 在匹配…
2021.08.30 前缀函数和KMP KMP算法详解-彻底清楚了(转载+部分原创) - sofu6 - 博客园 (cnblogs.com) KMP算法next数组的一种理解思路 - 挠到头秃 - 博客园 (cnblogs.com) 练习题 求next典范代表 UVA455 周期串 Periodic Strings - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<cstdio> #include<iostream> #include<alg…