字符串
touwangyi
没有解决不了的难题,只有跑不动的芯片。
展开
-
2017 CCPC网络赛 hdu6153 KMP
题目链接 题意:给你连个字符串,s,t 求出t的所有后缀在s中出现的次数乘后缀的长度。 一开始想的后缀数组,tle,最后才知道是kmp 首先把s 和 他翻转一下,这是后就相当于求前缀了,然后求出t的next数组,然后对s跑kmp,跑的时候记录每一个长度匹配的次数,然后对于某个长度,如果他匹配了 比他小的也就匹配了,所以最后在类似求一个后缀和。 代码:#include<iostream> #i原创 2017-08-20 13:44:43 · 338 阅读 · 0 评论 -
2017多校9 Two string hdu 6170 dp
题目链接 题目大意:给你两个字符串A B,A由大小写字母组成,B由大小写字符和 . 和 *组成现在问你AB能够匹配 其中 . 可以匹配任何字符 * 表示其前面一位的字符可以出现任意多次 可以为0次。思路:首先来考虑dp[i][j]表示A串1-i用B串的1-j能否匹配 转移的时候就考虑B串 如果当前字符是 . 那么dp[i][j]=dp[i-1][j-1] 如果是普通字符 dp[i][j] =原创 2017-08-26 21:08:52 · 199 阅读 · 0 评论 -
hdu6138 多校2017 ac自动机or后缀数组
题目链接 题目大意:给定n个字符串,m个询问,对于每一个询问,给出x,y 问第x个串和第y个串的相同连续子串当中,作为其他(包括自己)串的前缀的最长长度。两种思路:第一种ac自动机 首先把所有的串建立一个fail树,那么对于询问把第一个串在树上跑一遍,把所有匹配的节点标记,然后让第二串跑一遍,如果遇到相同匹配的节点,记录当前的最大深度就可以了。 代码:#include<iostream> #i原创 2017-08-23 21:03:39 · 446 阅读 · 0 评论