给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的长度。
给定K个询问,对于每个询问给定一个x,求出匹配长度恰为x的位置有多少个。
N,M,K<=200000

字符串的处理,用KMP喽,首先求出模式串B的next[],然后进行一遍AB匹配,记录a[i]匹配的最大长度,那么如果a[i]可以匹配l[i]的长度,answer[i]表示匹配长度为i的串的数量,则answer[next[i]]的匹配长度也是满足answer[i]的,所以只要倒着循环一遍,把answer[next[i]]加到answer[i]中即可。这时的answer[i]包含了长度为i+1的情况,所以要输出answer[k]-answer[k+1].

View Code

 1 program tyvj1068(input,output); 2 var 3    a,b      : ansistring; 4    next,l : array[0..201000] of longint; 5    answer : array[0..201000] of longint; 6    i,j,x  : longint; 7    n,m,k  : longint; 8    ch      : char; 9 begin10    readln(n,m,k);11    a:='';12    b:='';13    for i:=1 to n do14    begin15       read(ch);16       a:=a+ch;17    end;18    readln;19    for i:=1 to m do20    begin21       read(ch);22       b:=b+ch;23    end;24    readln;25    fillchar(next,sizeof(next),0);26    next[1]:=0;27    j:=0;28    for i:=2 to m do29    begin30       while (j>0)and(b[j+1]<>b[i]) do31      j:=next[j];32       if b[j+1]=b[i] then33      inc(j);34       next[i]:=j;35    end;36    j:=0;37    for i:=1 to n do38    begin39       while (j>0)and(b[j+1]<>a[i]) do40      j:=next[j];41       if b[j+1]=a[i] then42      inc(j);43       l[i]:=j;44       if j=m then45      j:=next[j];46    end;47    fillchar(answer,sizeof(answer),0);48    for i:=1 to n do49       inc(answer[l[i]]);50    for i:=n downto 1 do51       inc(answer[next[i]],answer[i]);52    for i:=1 to k do53    begin54       readln(x);55       writeln(answer[x]-answer[x+1]);56    end;57 end.

转载于:https://www.cnblogs.com/neverforget/archive/2012/03/27/2419621.html

tyvj1068 STR相关推荐

  1. Ubuntu16.04 pip3 install 报错 working_set.find(moduleOrReq) or require(str(moduleOrReq))[0]

    1. 问题现象 Exception: Traceback (most recent call last):File "/usr/lib/python3/dist-packages/pip/b ...

  2. python中什么是字符举例说明_第20p,什么是字符串?Python中的str

    原标题:第20p,什么是字符串?Python中的str 大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第20篇文章,第二阶段的课程:Python基础知识:Python的字符串(上 ...

  3. TypeError: can only concatenate str (not “float“) to str

    处错原因如下 就是print 的地方报错了,类型不一样引起的问题 处理这个问题有2种方法 方法1: 转换类型 pi = 3.14 print("当前的p=" + str(pi)) ...

  4. TypeError: can only concatenate str (not “int“) to str

    出现问题原因如下 报错的地方告诉我了print 的地方报错了 类型不一样引起的问题 处理这个问题有2种方法 方法1: 转换类型 pi = 3 print("当前的p=" + str ...

  5. TypeError: cannot concatenate ‘str‘ and ‘list‘ objects

    如下面的内容运行就会报错 list_a =[1, 2, 3, 4, 5] for i in list_a:print ("i的值为:"+i) 报错如下 处理方法把int 类型转为s ...

  6. 浅析Python中bytes和str区别

    本博转载自:Chown-Jane-Y的浅析Python3中的bytes和str类型 Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示, ...

  7. python中 str 和 repr_python repr()与str()区别总结

    python中,用于将某一类型的变量或者常量转换为字符串对象的方法有两种,即repr()和str().但是他们在定义.面向对象.返回处理方式.字符串处理和输出目的都有很大的不同,本文将做详细介绍. 1 ...

  8. python 去除str的引号 去除括号_Python基础教程:运算符以及数据类型解析

    运算符 一.算数运算: 二.比较运算: 三.赋值运算 四.逻辑运算 五.成员运算 基本数据类型 一.Number(数字) Python3中支持int.float.bool.complex. 使用内置的 ...

  9. Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?

    这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用_ ...

最新文章

  1. 中国象棋人机博弈程序(扁平化棋局) C语言实现
  2. 贪心算法--会场安排问题
  3. web页面事件无响应,元素点击不到
  4. 实践hibernate的应用——struts2+hibernate的简单学生信息管理
  5. 时空大数据实践之GeoWave安装部署实践
  6. Boring Partition(CF-239D)
  7. 【C语言】创建一个函数,利用该函数将两个字符串连接起来
  8. Seata-Server安装_以及工作原理---微服务升级_SpringCloud Alibaba工作笔记0058
  9. ebc是什么意思_什么是亚马逊EBC,EBC有什么用?
  10. 华硕主板bios通电自启设置_求各种主板通电自动开启的设置?
  11. Win Phone 8 Emulator启动错误:提示无法创建虚拟机,Xde找不到主机的IPv4地址
  12. 微信小程序轮播图实现
  13. AXI FULL协议学习与仿真
  14. 18. --plic--=--ply--=--pli--=--ple--=--plex--=--plo-- to fold 倍,重,折叠 (词19、20)
  15. poj 4105 拯救公主(bfs+二进制状态压缩)
  16. java 几种生成海报的方式
  17. python pip 连接超时,使用国内源下载
  18. 微信小程序,不可不知的一二三四
  19. Facebook技术探究:Delos中的虚拟共识机制
  20. android .trace 文件,android - 了解Android应用程序的.trace文件 - SO中文参考 - www.soinside.com...

热门文章

  1. Spring PropertyPlaceholderConfigurer Usage - 使用系统变量替换spring配置文件中的变量
  2. 继承性和层叠性 权重 盒模型 padding(内边距) border(边框) margin 标准文档流 块级元素和行内元素...
  3. Redis数据库的管理
  4. STM8S103 PB4和PB5
  5. Jquery plugin template POPUP Plugin
  6. VirtualBox下Ubuntu利用桥接方式上网
  7. 常用 API 函数(5): 文本和字体函数
  8. WCF 使用证书认证 方法
  9. python中requests的用法总结
  10. python 上传文件下载图片