poj 3461 Oulipo (KMP)
基础KMP, 要注意一次查找完成后,到下一可查找处继续匹配,这样才能保证得到最终个数。
code:
#include<cstring>
char substr[10001] ;
char str[1000001] ;
int next[10001] ;
int sublen, len, ans ;
void get_next(){
next[1] = 0 ;
int j = 0 ;
for(int i=2; i<=sublen; i++){
while(j>0&&substr[j+1]!=substr[i])
j = next[j] ;
if(substr[j+1]==substr[i]) j ++ ;
next[i] = j ;
}
}
void kmp(){
int j = 0 ;
for(int i=1; i<=len; i++){
while(j>0&&substr[j+1]!=str[i])
j = next[j] ;
if(substr[j+1]==str[i]) j ++ ;
if(j==sublen){
ans ++ ;
j = next[j] ; //一次查找完成后,到下一可查找处继续匹配
}
}
printf("%d\n", ans) ;
}
int main(){
int t ;
scanf("%d", &t) ;
while(t--){
scanf("%s", substr+1) ;
scanf("%s", str+1) ;
ans = 0 ;
sublen = strlen(substr+1) ;
len = strlen(str+1) ;
get_next() ;
kmp() ;
}
return 0 ;
}
转载于:https://www.cnblogs.com/xiaolongchase/archive/2012/02/05/2339128.html
poj 3461 Oulipo (KMP)相关推荐
- KMP POJ 3461 Oulipo
题目传送门 1 /* 2 题意:问一个串在另一个串出现的次数(可重复) 3 KMP:模板题 4 */ 5 /********************************************** ...
- POJ - 3461 (kmp)
题目链接:http://poj.org/problem?id=3461 Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissio ...
- poj 3461 Oulipo(kmp统计子串出现次数)
题意:统计子串出现在主串中的次数 思路:典型kmp #include<iostream> #include<stdio.h> #include<string.h> ...
- POJ 3461 Oulipo(kmp算法解析)
题目链接:https://cn.vjudge.net/contest/320014#problem/F Sample Input 3 BAPC BAPC AZA AZAZAZA VERDI AVERD ...
- Oulipo POJ - 3461【KMP】
这道题说了很多,但其实就是给了你两个字符串p和t,输出p在t中出现的次数 在KMP模板上的改动是 if(j==len1){ // printf("i=%d j=%d\n",i,j) ...
- poj 3461 - Oulipo
KMP算法,按书上说的写一遍,总是很别扭,后来才知道是数组开始问题,就是从"1"还是从"0"开始,废了很多脑力,又增几多白发,才把书上的从1开始改为从0开始.昨 ...
- POJ 3461 Oulipo
KMP模板题 #include<iostream> #include<cstring> #include<cstdio> using namespace std; ...
- POJ 3461 字符串匹配(KMP / 哈希(有推导))
文章目录 1. 题目 1.1 题目链接 1.2 题目大意 2. Accepted代码 2.1 KMP解法 2.2 哈希法(有推导过程) 1. 题目 1.1 题目链接 http://poj.org/pr ...
- Oulipo (KMP算法)
Oulipo (KMP算法) 题目链接:HDU-1686 题目: Oulipo Problem Description The French author Georges Perec (1936–19 ...
最新文章
- 学习抖音上如何一下删除大型文件,源代码给出!
- ros重置后地址_从零开始丨INDEMIND双目惯性模组ROS平台下实时ORB-SLAM记录教程
- DHL 快递跟踪查询
- MariaDB Spider 数据库分库分表实践 
分库分表
- 使用Redis的简单消息队列
- Java快速入门学习笔记2 | Java语言中的基本类型
- 2008不可错过的好莱坞电影
- html中灰色怎么写,css如何实现置灰不可点
- 本机web开发环境的搭建--nginx篇
- 设置广告 php,设置ecshop广告位
- 单应性变换(Homography)的学习与理解
- 怎样保存html视频,网页上的视频怎么保存到电脑 网页视频保存到电脑的步骤教程...
- sklearn.metrics confusion_matrix注意事项
- Android中wifi认证的实现
- 懒人起名神器,百度翻译内容改为驼峰格式
- 蓝桥杯评分标准_蓝桥杯软件设计大赛自测评分标准
- C语言编程>第二十六周 ⑥ 请补充fun函数,该函数的功能是:按 “0”到 “9”统计一个字符串中的奇数数字字符各自出现的次数,结果保存在数组num中。注意:不能使用字符串库函数。
- scrapy 简单教程
- nodejs安装及环境配置
- PowerShell隐藏不显示窗口的多种方法