[hdu1686] Oulipo【KMP】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1686
保存KMP模版,代码里P是模版串,next[]就是为它建立的。T是文本串,就是一般比较长的。next[i]表示i后缀的最长相等前缀在哪,字符串从1开始数(而不是0)。
#include <cstdio>
#include <cstring> const int maxn = 10005, maxm = 1000005; /* n for |Pattern|, m for |Text| */
/* |Pattern| is shorter than |Text| in general */ int kase, n, m, next[maxn];
char P[maxn], T[maxm]; /* build next[] for Pattern, not for Text!!! */
inline void get_next(void) {
next[0] = -1;
next[1] = 0;
int i = 1, j = 0;
while (i < n) {
while (j != -1 && P[i + 1] != P[j + 1]) {
j = next[j];
}
next[++i] = ++j;
}
}
inline int count(void) {
int i = 0, j = 0, rt = 0;
while (j < m) {
while (i != -1 && P[i + 1] != T[j + 1]) {
i = next[i];
}
++i;
++j;
if (i == n) {
++rt;
}
} return rt;
} int main(void) {
//freopen("in.txt", "r", stdin);
scanf("%d", &kase);
while (kase--) {
scanf("%s", P + 1);
n = strlen(P + 1);
scanf("%s", T + 1);
m = strlen(T + 1); get_next();
printf("%d\n", count());
}
return 0;
}
[hdu1686] Oulipo【KMP】的更多相关文章
- hdu 1686 Oulipo  【KMP】(计算模式串匹配的次数——与已匹配的字串可以有交集)
		
题目链接:https://vjudge.net/contest/220679#problem/B 题目大意: 输入一个T,表示有T组测试数据: 每组测试数据包括一个字符串W,T,T长度大于W小于100 ...
 - 【KMP】【最小表示法】NCPC 2014 H clock pictures
		
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1794 题目大意: 两个无刻度的钟面,每个上面有N根针(N<=200000),每个 ...
 - 【动态规划】【KMP】HDU 5763 Another Meaning
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5763 题目大意: T组数据,给两个字符串s1,s2(len<=100000),s2可以被解读成 ...
 - HDOJ 2203 亲和串 【KMP】
		
HDOJ 2203 亲和串 [KMP] Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
 - 【KMP】Censoring
		
[KMP]Censoring 题目描述 Farmer John has purchased a subscription to Good Hooveskeeping magazine for his ...
 - 【KMP】OKR-Periods of Words
		
[KMP]OKR-Periods of Words 题目描述 串是有限个小写字符的序列,特别的,一个空序列也可以是一个串.一个串P是串A的前缀,当且仅当存在串B,使得A=PB.如果P≠A并且P不是一个 ...
 - 【KMP】Radio Transmission
		
问题 L: [KMP]Radio Transmission 题目描述 给你一个字符串,它是由某个字符串不断自我连接形成的.但是这个字符串是不确定的,现在只想知道它的最短长度是多少. 输入 第一行给出字 ...
 - 【kmp】似乎在梦中见过的样子
		
参考博客: BZOJ 3620: 似乎在梦中见过的样子 [KMP]似乎在梦中见过的样子 题目描述 「Madoka,不要相信QB!」伴随着Homura的失望地喊叫,Madoka与QB签订了契约. 这是M ...
 - 【POJ3461】【KMP】Oulipo
		
Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, without t ...
 
随机推荐
- [CPP - STL] swap技巧
			
最近在看<Effective STL>,[条款17:使用“交换技巧”修整过剩容量]中提到容器的成函数void swap(container& from),即实现容器对象与from对 ...
 - redis一些笔记
			
base 字典: hget/hset 在redis字典中值只能是字符串,使用渐进式进行rehash.在rehash的过程中,会保留两个hash结构:查询时会同时查询两个结构:逐渐完成hash的迁移. ...
 - Windows程序设计(0)——编程之前
			
Windows程序设计之前 1 做什么 2 解决什么问题 3 有哪些资源 在开始真正的编程之前,需要了解要做的事情是什么,要解决的解决的问题是什么,有哪些资源可以使用. 1 Windows程序设计之前 ...
 - poj3295 Tautology —— 构造法
			
题目链接:http://poj.org/problem?id=3295 题意: 输入由p.q.r.s.t.K.A.N.C.E共10个字母组成的逻辑表达式, 其中p.q.r.s.t的值为1(true)或 ...
 - Windows Server 2012 修改桌面图标
			
在virtualbox 4.2.18中装了个Windows Server 2012 来体验下,结果发现桌面图标都不知道在哪改.在百度文库上找到了解决方法:http://wenku.baidu.com/ ...
 - php排序方法之快速排序
			
$arr = array(3,55,45,2,67,76,6.7,-65,85,4); function quickSort($arr){ if (count($arr) <= 1){ retu ...
 - excel 基本用法
 - Thrift之代码生成器Compiler原理及源码详细解析2
			
我的新浪微博:http://weibo.com/freshairbrucewoo. 欢迎大家相互交流,共同提高技术. 2 t_generator类和t_generator_registry类 这个两 ...
 - Mogodb 存储DateTime问题
			
由于mogodb默认用的是国际日期utc和中国时间有8小时时差. c#当中利用特别属性来解决,如: /// <summary> /// 创建日期 /// < ...
 - JAVA NIO non-blocking模式实现高并发服务器
			
JAVA NIO non-blocking模式实现高并发服务器 分类: JAVA NIO2014-04-14 11:12 1912人阅读 评论(0) 收藏 举报 目录(?)[+] Java自1.4以后 ...