CodeForces - 126B Password( kmp )

把时间当成数据:SAP ABAP 里的 DATS/TIMS 与 DATN/TIMN,怎么选才不踩坑 SAP项目中日期时间字段的陷阱与优化 日期时间字段(DATS/TIMS)在SAP项目中看似简单却常引发事故,主要问题包括: 非法日期(如20201331)入库后,在月结、对账时爆发异常 空值被处理为00000000导致排序错误 ABAP提供两种处理方案: 经典类型DATS/TIMS:存储为字符格式,校验宽松易存脏数据 HANA原生类型DATN/TIMN:数据库级校验,写入即拦截非法值 优化建议: 在接口层和入库前进行严格校验 新项目优先使用DATN/TIMN类型 对遗留数据使用DATS_IS_VALID等函 阅读详情
题目链接:点击进入
题目

在这里插入图片描述
在这里插入图片描述

题意

对字符串 s ,找最长的 t ,满足 t 在 s 的前后缀以及中间部分出现过

思路

通过 next 数组由长到短枚举 s 所有相同的前后缀,然后在中间部分通过 next 数组找是否出现过这个子串

代码
// Problem: Password
// Contest: Virtual Judge - CodeForces
// URL: https://vjudge.net/problem/CodeForces-126B
// Memory Limit: 262 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

//#pragma GCC optimize(3)//O3
//#pragma GCC optimize(2)//O2
#include<iostream>
#include<string>
#include<map>
#include<set>
//#include<unordered_map>
#include<queue>
#include<cstdio>
#include<vector>
#include<cstring>
#include<stack>
#include<algorithm>
#include<iomanip>
#include<cmath>
#include<fstream>
#define X first
#define Y second
#define base 233 
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define lowbit(x) x & -x
#define inf 0x3f3f3f3f
//#define int long long
//#define double long double
//#define rep(i,x,y) for(register int i = x; i <= y;++i)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const double pai=acos(-1.0);
const int maxn=1e6+10;
const int mod=1e9+7;
const double eps=1e-9;
const int N=5e3+10;
/*--------------------------------------------*/
inline int read()
{
    int k = 0, f = 1 ;
    char c = getchar() ;
    while(!isdigit(c)){if(c == '-') f = -1 ;c = getchar() ;}
    while(isdigit(c)) k = (k << 1) + (k << 3) + c - 48 ,c = getchar() ;
    return k * f ;
}
/*--------------------------------------------*/

int Next[maxn];
string s;

void getnext(string s,int len)
{
	int k=-1,j=0;
	Next[0]=-1;
	while(j<len)
	{
		if(k==-1||s[j]==s[k])
		{
			k++;
			j++;
			Next[j]=k;
		}
		else k=Next[k];
	}
}


int main() 
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);cout.tie(0);
	cin>>s;
	int len=s.size();
	getnext(s,len);
	int l=Next[len],flag=0,ans=0;
	if(l==0) flag=0;
	else
	{
		while(l)
		{
			for(int i=2;i<=len-1;i++)
			{
				if(Next[i]==l)
				{
					flag=1;
					break;
				}
			}
			if(flag) break;
			l=Next[l];
		}
	}
	if(!flag) cout<<"Just a legend"<<endl;
	else
	{
		for(int i=0;i<l;i++)
			cout<<s[i];
	}
    return 0;
} 
【用unity实现100个游戏之1】制作类元气骑士、挺进地牢——俯视角射击游戏多种射击效果(一)(附源码) 俯视角射击游戏)是一类以俯视视角进行游戏展示的射击游戏。在这种游戏中,玩家控制着一个角色或载具,从俯视的角度上方观察游戏世界,并与敌人进行战斗。这种视角使玩家能够有更好的全局观察和策略性,同时也强调快速反应和精确射击。视角:俯视角度可以是固定的,也可以随着玩家角色的移动而变化,但都允许玩家以全局视角观察整个战场,有利于制定战略和规划行动。射击:玩家通常需要使用各种武器来与敌人进行战斗,包括枪械、爆炸物等。射击动作依赖于玩家的反应速度和准确性。 阅读详情

相关推荐

SAP LTMC实战指南:物料主数据高效导入全解析

本文详细解析了SAP LTMC工具在物料主数据高效导入中的实战应用,包括工具选择、项目搭建、模板定制、数据导入全流程及常见问题解决方案。重点介绍了LTMC的预置模板、LTMOM灵活配置、数据校验机制等核心功能,帮助用户快速掌握SAP数据迁移技巧,提升工作效率。

weixin_33738555的博客 434

CodeForces 126B Password (KMP)

题意: 给定字符串S,找到既是S的前缀又是S的后缀同时又在S中间出现过的最长子串T。思路:一眼KMP!  首先要找到一个既是S前缀又是S后缀的最长子串,用KMP的next数组即可求出,重点就是怎么找位于中间位置的子串T 。如果在中间的子串 T 以 S[i]为结尾,那么 T 就是 S[1..i]的公共前后缀。既然是公共前后缀,就可以再次使用 KMP。  又因为中间的子串 T 的结尾只可能在 [2...n-1]之间,所以子串最后的长度就不会超过 max(next[2..n-1])。我们把这个最大值记作nemax

weixin_62802134的博客 839

【知识点总结】电机学——原理部分

大家好,由于院校地区存在疫情没法返校,再结合当下形式,去各地旅游放松可能不是一个好的决定,o(╥﹏╥)o,期待已久的旅行就先放一边吧,但也不能闲着,既然无事,那不如继续我的总结,本次总结的内容是电机学,自九推以后我越来越明白电机学的重要性……呜呜呜~~实在太重要了,几乎所有与专业复试有关的题目都会涉及电机学,而它又比较抽象,容易使人浅尝辄止,只能理解一些表面的东西。为此自九推之后,我深刻领悟自身不足,决定对电机学发起依次猛攻,势必要将其彻底拿下,这这只是我的粗略总结,若有空闲,我将不断完善它。

weixin_51130221的博客 1万+

CodeForces - 126B Password KMP+dp思想

CodeForces - 126B Password 题意: 给你一个字符串,找出一个最长子串 t ,t 既是前缀也是后缀,并且 t 在字符串中间也出现过 思路: 利用KMP求出 nxt 数组。然后预处理出整个字符串有多少个与该前缀相同的子串。用到DP思想,cnt[nxt[i]]+=cnt[i],倒着更新一遍。那么cnt大等于3的前缀,均为可行解 利用next[next[i]]是次长...

没有梦想何以远行 325

从零开始:用这些公开数据集搞定电力AI项目(含鸟巢、绝缘子、负荷预测等33个实战资源)

本文系统梳理了电力AI领域33个精选公开数据集,涵盖目标检测、负荷预测等关键场景,如鸟巢检测、绝缘子缺陷识别等。通过实战案例解析数据预处理、模型选型及性能优化策略,帮助工程师快速构建端到端解决方案,解决电力AI项目中的数据获取与处理难题。

weixin_42522552的博客 216

Elasticsearch连接中断:深入解析Connection reset by peer问题及优化策略

本文深入解析Elasticsearch连接中断问题,特别是Connection reset by peer错误的成因与解决方案。从TCP层的心跳机制到客户端与服务端的配置差异,详细介绍了网络不稳定、防火墙拦截等常见原因,并提供了六种优化策略,包括KeepAlive调整、TCP参数调优和智能重试机制等,帮助提升Elasticsearch连接的稳定性。

weixin_42546392的博客 410

Password CodeForces - 126B(字符串匹配,next数组的运用)

Password 题目链接:CodeForces - 126B 题意:给出一个字符串s,要求找出一个子串t,满足一下三点: 1:t是s的前缀; 2:t是s的后缀; 3:t既不是s的前缀也不是s的后缀; ????看着很懵逼?这三点前后矛盾了???? 前两点应该是很清楚吧,就是找一个子串t,既是前缀也是后缀,形如:acbcdac中ac既是前缀也是后缀; 第三点怎么理解?现在t是前缀也...

Sirius_han的博客 1017

lisp方格网法计算土方量_分享:两期土方工程量计算(方格网法)实例例题

最近遇到一个飞时达土方软件试用版客户,咨询怎么根据平整前的原始地形图和平整后的现状地形图来计算产生的土方工程量,也就是两期土方量,且需要用方格网法来计算,作为一个老道的工程设计人员,博主对这类的项目实例例题简直太熟悉了,用飞时达土方计算软件V13.0可以很方便的计算出来。 方格网法计算两期土方量流程 一、软件安装及注册 专业的飞时达土方计算软件FastTFT,请到飞时达软件官方网站去下载,注册完...

weixin_35131425的博客 1698

codeforces 126B Password(哈希)

问题:给出一个字符串s,求其最长的子串,即是s的前缀,也是s的后缀,同时存在于s的中间。 思路:rabin-karp算法,计算字符串前缀的哈希值。然后通过枚举可能的最长长度[1, len-1]的子串,其中len为字符串s的长度,先计算前缀及后缀的哈希值,如果不相同,说明不满足,继续遍历。如果相同,再枚举中间字符串的位置,看其哈希值是否与前缀哈希相等。具体代码参考: https://github.com/wuli2496/OJ/blob/master/codeforces/126B%20-%20Passw

多看多听多总结 380

ShardingSphere-jdbc 5.5.0 + spring boot 基础配置 - 实战篇

shardingsphere 5.5.0移除了sm4算法,自己加上即可。增加spi扩展org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm增加以下代码:SM4算法代码/***/static {@Getter@Overrideif (!

qq_21903999的博客 4742

OB4.X集群状态running但是oceanbase-ce is not running

自 V3.2.0 起,若 obd 设置了加密密钥,执行 display 命令输出的集群信息中,密码相关内容为加密状态。若需输出明文密码,可在命令中添加 --epk/–encryption-passkey 指定密钥用于验证。obd 运维的数据库,启停需要使用obd进行操作,停机时候没有使用obd会导致集群状态running但是oceanbase-ce is not running。查看集群中的租户时无租户反馈,警告oceanbase-ce is not running,但是查询集群状态明明是running。

qq961573863的博客 1213

codeforces 126B password (哈希)

题意:给出一个字符串,让你判断是否存在一个字符串的一个字串同时出现在字符串开头,中间(不能从第一个字母开始或者以最后一个字母结尾),和最后。一开始以为只给了2s,需要二分,不然会超时,后来写完了,测了样例才发现这题是不能用二分来写的,因为枚举的长度是不存在前后关系的。举个例子,假如说你判断前缀为4的时候,答案是不存在的,但这并不能说明前缀为5或者3的时候是不存在的。wa了之后,无奈只能去枚举,还是以

yiqzq的博客 627

使用 MATLAB/Simulink 构建一个基于FOC控制的PMSM矢量控制仿真模型

本教程详细介绍了基于Simulink的永磁同步电机(PMSM)磁场定向控制(FOC)仿真建模过程。主要内容包括:PMSM电机参数设置、Clarke/Park变换模块设计、电流环PID控制器构建、SVPWM调制实现等关键步骤。教程提供了完整的建模流程、参数配置建议和仿真调试方法,并给出了PID整定技巧和进阶优化方向。通过该模型,可深入理解PMSM矢量控制原理,掌握高性能电机控制系统的建模技术,为伺服系统、电动汽车驱动等应用领域提供仿真基础。教程还推荐了使用PIDTuner工具进行参数优化,并提出了加入负载扰动

amy_mhd的博客 643

Codeforces 126B. Password(KMP,DP)

Codeforces 126B. Password 题意:一个字符串,找出最长的子串t,它既是前缀又是后缀,还出现在中间。输出t,不存在则输出Just a legend。 思路:利用KMP算法处理出next数组,由next数组的意义可以知道i为尾的最长相同前缀后缀。则ne[n-1],ne[ne[n-1]],ne[ne[ne[n-1]]]......均为可能的解,且长度递减,为了高效的逐一验证,则...

weixin_30628801的博客 241

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Codeforces126B Password (KMP)

题目链接: Password 大致题意 给定字符串sss, 求在串中出现过的最长的匹配的前后缀. 串中出现: 表示出现非前缀且非后缀. 解题思路 kmp 我们考虑对于长度为nnn字符串sss而言, 最长匹配的前后缀一定是next[n]next[n]next[n]. 但该子串并不一定在串中出现. 有可能存在某个短一些的前后缀, 是符合要求的. 首先考虑如何判断最长后缀是否合法 我们不放统计[2,n)[2, n)[2,n)区间ne[]ne[]ne[]值的情况, 开一个桶cou[]cou[]cou[]进行记

Fau的博客 644

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

codeforces 126B Password DP KMP

题意:在一个字符串中求一字串,即可以在前缀中找到,也可以在后缀中找到,也可以在中间找到 做法来自自于ZeroClock #include #include #include #define LMT 1000005 /**** KMP算法本质:在字符串中有一个字符,以这个字符为末尾的长度为N的子串(不包括末字符,N为所能取到的最大值), 可以与字符串头字符构成的长度为N的字串匹配(不包括末

uiiの技术随笔 1534

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

codeforces 126 B. Password KMP算法

题目链接:https://vjudge.net/problem/CodeForces-126B 题意:一个字符串,找出最长的子串t,它既是前缀又是后缀,还出现在中间。输出t,不存在则输出Just a legend。 这个题KMP的next数组的理解还是要有的,next[i]表示在i之前,最长的公共前缀后缀的长度。 所以说,我们首先要看看是否存在公共前缀后缀,如果有,这只是保证了可能有解,因为我们还...

蜡笔小新冲鸭!!! 387

Codeforces 126B(Password) (KMP)

题目链接:传送门 题目描述:       给你一串字符串S,要你找出它的最长子串t,满足这个t既是S的前缀和后缀,也要在串S的中间位置出现过。如果没有,输出“Just a legend”,否则输出这个子串。 题目分析:       遇到这题时,刚学完后缀数组,又有后缀出现,就以为是后缀数组了。然后看了下时间1e6,时间刚刚好。然后就高高兴兴的去打了出来,可能常数太大了吧,T了。后来,听大佬...

weixin_41100093的博客 221

codeforces 126B password KMP

/* 题目描述:给出一个字符串s,从s中找一个子串s0,使得s0是满足既是s前缀、又是s后缀,还是s的一个非前缀非后缀的 子串这三个条件的长度最长的串 思路:利用KMP,找出能匹配s前缀的最长的一段长度,其长度为ans1,注意这段匹配的结尾不能是s的最后一个字符, 否则这段匹配就成了s的一个后缀;然后再找出能匹

jijijix的博客 546

codeforces 126B password[kmp]

题目大意:给定一个字符串,找出其中一个最长的子串,使得这个子串既是前缀又是后缀又在中间出现 题目分析:我们看到前后缀很自然的可以想到Kmp中的next数组,那么如何处理是否在中间呢?我一开始构建了一个s除去头尾的子串,试图在其中用find函数去查找是否存在这样的串,很显然这样的复杂度是很高的,会T,我们可以发现,我们在求next的数组的时候,就是求最长前缀后多少个,因此,我们只要记录除了最后一个...

beckyUp的博客 352

CodeForces 126 B.Password(kmp的next数组)

题意: 给定字符串,要求找到一个最长的子串, 这个串既是前缀又是后缀且在字符串中间也出现过(中间意味着不是前缀也不是后缀) 如果存在输出该最长子串 否则输出Just a legend Examples Input fixprefixsuffix Output fix Input abcdabc Output Just a legend 思路: kmp的nt数组 nt[i]表示在i之前,最长的公共前...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 337

Codeforces 126B Password(KMP)

题意:给你一个字符串,让你在里面找到一个最长的公共的前缀后缀,并且在 字符串中间也出现过一次的子串。 这个题KMP的next数组的理解还是要有的,next[i]表示在i之前,最长的 公共前缀后缀的长度。所以说,我们首先要看看是否存在公共前缀后缀, 如果有,这只是保证了可能有解,因为我们还要看中间是否出现过, 这个时候,我们让i=nxt[i],继续看这个nxt[i]是否出现过,为什么呢? 因为你此往前

只玩三国的程序猿的专栏 1511

CodeForces 126B password KMP

题意:判断输入的字符串是不是符合下面的条件:在串中能找出一个子串,这个子串要求在前缀,后缀 及串中间都出现过,找到将其输出,没有则输出Just a Legent #include #include using namespace std; const int N = 1000001; int Next[N],vis[N]; void getnext(string a) { int k=-1,j

chen_minghui的博客 476

CodeForces 126B - Password 利用KMP

注意题目要求...aaaaaa的答案应该是aaaa      算出每个位置的fail值....然后不断往前找最后一个位置的fail...直到有一个的fail不为0..则找到答案.. Program: #include #include #include #include #include #include #include #include #define ll long long

zzyzzy12 1739

codeforces 126B B. Password(kmp+dp)

题目链接:codeforces 126B题目大意:给出一个字符串,找出一个子串既是它的前缀,也是它的后缀,还是一个非后缀也非前缀的子串。题目分析: 本来挺简单的一个题,最开始想复杂了,还用了后缀数组,醉了。 这个题主要用的是kmp的next数组,首先我们要了解next数组的定义,next[i]表示以i为末尾的子串的后缀与能够匹配的整个串的最长的前缀。 然后我们可以知道后缀与前缀的最长相同的长度,现在

llin-黎辰 2855

【题解】Codeforces126B. Password 前缀函数(KMP)

给一个字符串S(1e6)S(1e6)S(1e6),求它的一个最长的子串ttt,满足ttt既是SSS的前缀,又是SSS的后缀,又在一个既不是前缀又不是后缀的地方出现。 如果没有这样的子串,输出Just a legend. 性质很强,解法很多。 比如求得前缀函数,然后从大到小遍历整个字符串的所有候选border,看有没有一个位置的前缀函数值等于这个候选border.(实际上从第二个开始一定有). ...

秋叶红于二月花 560
上一篇: CodeForces - 1138D Camp Schedule - ( kmp + 构造 )
下一篇: CodeForces - 182D Common Divisors( kmp + 最大公约数 )
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值