题目链接:http://poj.org/problem?id=3461

题意就是求模式串在一个主串中出现的次数

KMP的简单应用

代码:

 1 #include<cstring>
 2 #include<cstdlib>
 3 #include<cstdio>
 4 #include<iostream>
 5 using namespace std;
 6 #define maxn 1000100
 7 int f[maxn];
 8 char s1[maxn];
 9 char s2[maxn];
10 int n,m;
11 void callfail()
12 {
13    int i,j=0,k=-1;
14    f[0]=-1;
15    while(j<n)
16    {
17        if(k==-1||s1[j]==s1[k])
18                k++,j++,f[j]=k;
19        else k=f[k];
20    }
21 }
22 int  count_words()
23 {
24      int i=0,j=0,ans=0;
25      while(i<n&&j<m)
26      {
27       if(i==-1||s1[i]==s2[j])
28       {
29           i++;j++;
30           if(i==n)
31           {
32                   ans++;
33                   i=f[i];
34           }
35       }
36       else
37          i=f[i];
38      }
39      return ans;
40 }
41 int main()
42 {
43        int t;
44        scanf("%d",&t);
45        while(t--)
46        {
47            scanf("%s%s",s1,s2);
48            n=strlen(s1);
49            m=strlen(s2);
50            memset(f,0,sizeof(f));
51            callfail();
52            int ans=count_words();
53            cout<<ans<<endl;
54
55        }
56        return 0;
57 }

View Code

转载于:https://www.cnblogs.com/xiaozhuyang/p/poj3461.html

poj3461 Oulipo相关推荐

  1. POJ3461 Oulipo ——KMP算法——Pku3461

    建议大家学一学比较巧妙的KMP算法吧,很有意思.推荐个题目:POJ3167 Cow Patterns 题解我会发在本博里. 这个KMP就木有什么好说的了吧,大家找百度百科学一下就可以了~ CODE P ...

  2. Practice II 字符串

    本来想做数论的--但是别的dalao都在做制胡窜 所以-- Chapter I KMP KMP 最关键的不是这个半暴力的单模匹配 而是这个nxt数组 经常出一些奇怪的题 尤其是循环节可以直接由T-nx ...

  3. Oulipo(POJ-3461)

    Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...

  4. POJ3461 HDU1686 Oulipo题解

    代码来源:TYUT_YancyKahn AC的C++语言程序如下: #include <iostream> #include <cstdio> #include <cst ...

  5. 【POJ3461】Oulipo(字符串Hash)

    problem 给定两个字符串s1,s2,求s1在s2中出现了多少次(可重叠). len(s1) < 1e4, len(s2) < 1e6. solution 字符串Hash 介绍: 字符 ...

  6. KMP POJ 3461 Oulipo

    题目传送门 1 /* 2 题意:问一个串在另一个串出现的次数(可重复) 3 KMP:模板题 4 */ 5 /********************************************** ...

  7. Oulipo HDU - 1686(哈希或KMP)匹配字符串

    题意:字符串匹配:寻找字符串S中,字符串T出现的次数 思路:KMP或哈希 The French author Georges Perec (1936–1982) once wrote a book, ...

  8. Oulipo (KMP出现次数)

    The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e ...

  9. HDU 1686 Oulipo【kmp求子串出现的次数】

    The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e ...

  10. Oulipo(Hash入门第一题 Hash函数学习)

    Hash,一般翻译做散列.杂凑,或音译为哈希,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的 ...

最新文章

  1. 使用selenium设置firefox不加载图片增加加载速度提高爬虫效率
  2. UA MATH574M 统计学习V Variable Selection简介
  3. Liunx中环境变量的配置profile,environment,barshrc
  4. 对象文件格式分析工具: objdump, nm,ar
  5. python 如何判断一个函数执行完成_三步搞定 Python 中的文件操作
  6. IO 端口和IO 内存(原理篇)
  7. 微信小程序|area组件使用的地址数据文件
  8. STM32工作笔记0061---通用定时器基本原理
  9. sql组合索引和独立索引_SQL索引概述和策略
  10. 第88课:Spark Streaming从Flume Pull数据案例实战及内幕源码解密
  11. 保定学院计算机编程,惠普HP打印机驱动程序安装失败怎么办hewlett-packard上的文件...
  12. [CS61b] Git设置、问题及解决方式
  13. linux中sendto函数路径,Linux下send、sendto、sendmsg函数分析
  14. PS-fiveday-快速选择和魔棒工具(快速抠图)
  15. DOS命令 For Set
  16. 更新 mac 系统,clion 不能用
  17. 大数据与智慧城市建设论坛
  18. Excel中如何快速输入☑和☒
  19. CodeQL笔记之基本语法(一)
  20. MySQL数据库————MVCC

热门文章

  1. 正则匹配获取中括号中的内容
  2. 4.3定时器框架(Timer Framework)
  3. 【渝粤教育】国家开放大学2019年春季 2766养羊技术 参考试题
  4. 【渝粤教育】国家开放大学2018年秋季 0463-21T英语语音 参考试题
  5. 【渝粤教育】国家开放大学2018年春季 0063-21T中国现当代文学专题 参考试题
  6. [渝粤教育] 中国地质大学 计算机图形学(新) 复习题 (2)
  7. Matlab中的逻辑运算:“any”,“all”
  8. Pandas系列(六)SettingWithCopyWarning报警
  9. Redies安装,修配置,设置密码,
  10. VB / VS 多语言软件设计