2024/8/5笔记

news/2025/3/15 7:10:59/文章来源:https://www.cnblogs.com/Kang-shifu/p/18343899

字符串专题 1
暑假二南集训 day1
A - GT考试 洛谷 - P3193

[HNOI2008] GT考试

题目描述

阿申准备报名参加 GT 考试,准考证号为 \(N\) 位数\(X_1,X_2…X_n\ (0\le X_i\le 9)\),他不希望准考证号上出现不吉利的数字。
他的不吉利数字\(A_1,A_2,\cdots, A_m\ (0\le A_i\le 9)\)\(M\) 位,不出现是指 \(X_1,X_2\cdots X_n\) 中没有恰好一段等于 \(A_1,A_2,\cdots ,A_m\)\(A_1\)\(X_1\) 可以为 \(0\)

输入格式

第一行输入 \(N,M,K\) 接下来一行输入 \(M\) 位的数。

输出格式

阿申想知道不出现不吉利数字的号码有多少种,输出模 \(K\) 取余的结果。

样例 #1

样例输入 #1

4 3 100
111

样例输出 #1

81

提示

数据范围及约定

对于全部数据,\(N\leq10^9\)\(M\leq 20\)\(K\leq1000\)







f[i][j]表示长串匹配到第i位,短串最多可以匹配到第j位的方案数
image
再使用kmp,失去匹配就跳next。

F - 双倍回文 洛谷 - P4287

[SHOI2011] 双倍回文

题目描述

记字符串 \(w\) 的倒置为 \(w^{\mathsf R}\)。例如\(\tt (abcd)^{\mathsf R}=dcba\)\(\tt (abba)^{\mathsf R}=abba\)

对字符串 \(x\),如果 \(x\) 满足 \(x^{\mathsf R}=x\),则称之为回文。例如 \(\tt abba\) 是一个回文,而 \(\tt abed\) 不是。

如果 \(x\) 能够写成 \(ww^{\mathsf R} ww^{\mathsf R}\) 形式,则称它是一个“双倍回文”。换句话说,若要 \(x\) 是双倍回文,它的长度必须是 \(4\) 的倍数,而且 \(x\)\(x\) 的前半部分,\(x\) 的后半部分都要是回文。例如 \(\tt abbaabba\) 是一个双倍回文,而 \(\tt abaaba\) 不是,因为它的长度不是 \(4\) 的倍数。

  • \(x\) 的子串是指在 \(x\) 中连续的一段字符所组成的字符串。例如 \(\tt be\)\(\tt abed\) 的子串,而 \(\tt ac\) 不是。
  • \(x\) 的回文子串,就是指满足回文性质的 \(x\) 的子串。
  • \(x\) 的双倍回文子串,就是指满足双倍回文性质的 \(x\) 的子串。

你的任务是,对于给定的字符串,计算它的最长双倍回文子串的长度。

输入格式

输入分为两行。

第一行为一个整数,表示字符串的长度。
第二行有个连续的小写的英文字符,表示字符串的内容。

输出格式

输出文件只有一行即输入数据中字符串的最长双倍回文子串的长度,如果双倍回文子串不存在,则输出 \(0\)

样例 #1

样例输入 #1

16
ggabaabaabaaball

样例输出 #1

12

提示

数据范围及约定

对于全部数据,\(1\le N \le 500000\)

可以使用PAM解决,但是显然麻烦了。
因为双倍回文本身也是回文,所以用manacher。
在更新p数组的时候,判断对称中心左半段字串是否为回文,如果是再更新,这样就可以轻松解决。







H - Longest Common Substring https://www.luogu.com.cn/problem/SP1811

LCS - Longest Common Substring

题面翻译

输入两个字符串,输出它们的最长公共子串长度,若不存在公共子串则输出 \(0\)

其中字符串长度不超过 \(2.5\times 10^5\)

题目描述

A string is finite sequence of characters over a non-empty finite set Σ.

In this problem, Σ is the set of lowercase letters.

Substring, also called factor, is a consecutive sequence of characters occurrences at least once in a string.

Now your task is simple, for two given strings, find the length of the longest common substring of them.

Here common substring means a substring of two or more strings.

输入格式

The input contains exactly two lines, each line consists of no more than 250000 lowercase letters, representing a string.

输出格式

The length of the longest common substring. If such string doesn't exist, print "0" instead.

样例 #1

样例输入 #1

alsdfkjfjkdsal
fdjskalajfkdsla

样例输出 #1

3

使用SAM。
对于第一个字符串建一个SAM。
第二个字符串再SAM上匹配。
1.p有si的转移,直接跳下去,len++

2.p没有转移,在parent树上往上跳,直到有这个转移为止,并len=len(p)+1,再跳下去

3.跳到头还是没有转移,令p=1,len=0重新开始

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778282.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[米联客-安路飞龙DR1-FPSOC] SDK入门篇连载-02 FPSoc程序固化入门

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1概述在…

[米联客-安路飞龙DR1-FPSOC] SDK入门篇连载-01 FPSoc开发入门

软件版本:Anlogic -TD5.9.1-DR1_ES1.1 操作系统:WIN10 64bit 硬件平台:适用安路(Anlogic)FPGA 实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板 板卡获取平台:https://milianke.tmall.com/ 登录"米联客"FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 1概述1.…

maven 中 scope标签的作用以及引入本地jar包打包方法

1. scope标签的作用2、使用system标签 项目三方jar存放位置结构:pom.xml中引入三方jar: <dependency><groupId>test</groupId><artifactId>testa</artifactId><version>0.0.1</version><scope>system</scope><syst…

强大的USB协议分析工具

2020年最后一天了,感谢大家一年来对我文章的支持,有你们的支持就是我强大的动力。 今天来给大家介绍一个USB 协议分析软件LeCroy USB Advisor,软件安装包下载连接如下: 链接:https://pan.baidu.com/s/12qBCOjuy4i8kr1MHjBrfYQ 提取码:2rpx 这个软件对于USB协议学习有很大…

python用弹窗选文件

from tkinter.filedialog import askopenfilename file_path = askopenfilename() 这是我能找到的最简洁版本来源:https://blog.csdn.net/u014769180/article/details/84639775 from tkinter.filedialog import askopenfilenamefile_path = askopenfilename()这是我能找到的最…

D38 2-SAT CF27D Ring Road 2

视频链接:D38 2-SAT CF27D Ring Road 2_哔哩哔哩_bilibili CF27D Ring Road 2 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)#include <iostream> #include <cstring> #include <algorithm> using namespace std;const int N=205; int n,m,x[N],y[N]; i…

Linux的特殊权限

特殊权限是什么 在Linux中,特殊权限是指针对文件或目录的特殊权限设置,包括SetUID、SetGID和Sticky Bit。特殊权限说明SetUID Set User ID 当一个可执行文件被设置了SetUID权限后,当任何用户执行该文件时,文件的所有者权限会被赋予执行者,而不是执行者的权限。这使得用户可…

性能测试之内存瓶颈问题分析与调优

注意:内存问题是性能分析与调优非常常见的一类问题(内存不足/内存泄露/内存溢出等) 一、内存概念: 计算机的存储系统分为主存储系统(内存) 辅助存储系统(外存) 外存 :计算机的辅助存储器,包括硬盘、软盘、光盘、网络云盘等 【输入-键盘,鼠标,输出- 屏幕,音频 视频】…

【待做】【域渗透】获取域控方法总结

搭建虚拟环境 【域控】,192.168.10.3 【域成员】,192.168.10.4工具 mimikatz procdump64在域渗透中、作为渗透测试人员,获取域控的权限基本上可以获取整个内网的权限。在大多数情况下,攻击者可以通过定位域管理员所登录的服务器,利用漏洞获取服务器system权限,找到域管理…

南京大学计算机基础(四)踩坑笔记

第六周 缓冲区溢出章节 bang问题:每次输入的id将影响getbuf中的堆栈位置,用-u 12的ebp和-u 123的ebp位置就不一样。 注意汇编代码中不能出现a0(代表换行符),如果地址有a0就将它随便改改就行了(a0改为a8-0x8)。注意gdb如果不能重定向,可能是因为你修改了gdbinit:https://s…

【PythonRS】基于矢量点读取遥感影像波段值制作训练样本

在进行遥感定量反演或数据分析时,往往我们都具有矢量的真值,可能是点文件也可能是面文件,最重要的还是通过这个矢量获取影像中该区域的值,这样方便做波段分析以及后续的反演等流程。今天给大家分享一下如何通过点文件获取影像的波段值。​ 在进行遥感定量反演或数据…

17.python字符类型

python之字符类型字符串 (一)字符类型的符号: <class str> (二)查看字符类型语句:type()(三)常见的字符串类型语句: capitalize()、title()、count()、join、split、strip、strip、rstrip、startswith、startswith、endswith、find、rfind、replace、upper、…