【题解】Oulipo
题目描述
给出两个串S1,S2(只有大写字母),求S1在S2中出现了多少次。
例如:S1=“ABA”,S2=“ABABA”,答案为2。
输入T组数据,对每组数据输出结果。
输入输出格式
输入格式
第一行为T,表示有T组数据。
接下来分别为每组数据的两个串S1,S2。
输出格式
T行,分别输出每组数据中S1在S2中出现的次数。
每组数据保证S1长度≤10^4,S2长度≤10^6。
输入输出样例
输入样例
3
BAPC
BAPC
AZA
AZAZAZA
VERDI
AVERDXIVYERDIAN
输出样例
1
3
0
题解
字符串hash裸题,注意子串可以重合,直接遍历即可。
#include <iostream> #include <cstring> #include <cstdio> #define MAX_N 10000 #define MAX_M 1000000 using namespace std; int t; int n, m; ], s2[MAX_M | ]; unsigned ], h2[MAX_M | ]; unsigned ]; inline void Insert(char s[], int len, unsigned long long h[]) { h[] = s[] - 'A'; ; i < len; ++i) { h[i] = h[i - ] * + s[i] - 'A'; } return; } int main() { scanf("%d", &t); p[] = ; ; i <= MAX_N; ++i) { p[i] = p[i - ] * ; } while(t--) { scanf("%s%s", s1, s2); n = strlen(s1); m = strlen(s2); if(n > m) { printf("0\n"); continue; } Insert(s1, n, h1); Insert(s2, m, h2); ; ] == h2[n - ]) { ++ans; } ; i + n <= m; ++i) { ] == h2[i + n - ] - h2[i - ] * p[n]) { ++ans; } } printf("%d\n", ans); } ; }
参考程序
【题解】Oulipo的更多相关文章
- 题解报告:hdu 1686 Oulipo(裸KMP)
Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...
- HDU 1686 Oulipo(KMP)题解
题意:主串中能找到几个模式串 思路:超详细解释KMP KMP:针对这个代码,解释一下Fail数组的含义:T为主串,P为模式串,Fail代表失配值,即当P[j] != T[i]时,j要指向的位置为Fai ...
- POJ3461:Oulipo——题解
http://poj.org/problem?id=3461 KMP板子,好久以前学过了,直接把板子粘上去即可. #include<cstdio> #include<cstring& ...
- POJ 3461 Oulipo KMP算法题解
本题就是给出非常多对字符串,然后问一个字符串在另外一个字符串出现的次数. 就是所谓的Strstr函数啦. Leetcode有这道差点儿一模一样的题目. 使用KMP算法加速.算法高手必会的算法了. 另外 ...
- HDU1686 Oulipo 题解 KMP算法
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1686 题目大意:给你一个子串t和一个母串s,求s中有多少个子串t. 题目分析:KMP模板题. cal_ ...
- C++之路进阶——poj3461(Oulipo)
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 35694 Accepted: 14424 Descript ...
- POJ 3461 Oulipo(乌力波)
POJ 3461 Oulipo(乌力波) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] The French autho ...
- [POJ] 3461 Oulipo [KMP算法]
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 23667 Accepted: 9492 Descripti ...
- 【POJ3461】Oulipo
题面 The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter ...
随机推荐
- tar 压缩 解压 打包命令
01-.tar格式 解包:[*******]$ tar xvf FileName.tar 打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压 ...
- oracle 将字符串转化为数值型to_number()
select to_number('22.222') from dual
- js 动态声明变量(eval)
eval()可以将一段字符串当作js代码来执行. 动态声明变量(字符串)可通过eval(字符串)来实现.举例如下: var Thread_num=5; for(var i=1;i<=Thread ...
- Luogu P4071 [SDOI2016]排列计数
晚上XZTdalao给我推荐了这道数论题.太棒了又可以A一道省选题了 其实这道题也就考一个错排公式+组合数+乘法逆元 我们来一步一步分析 错排公式 通俗的说就是把n个1~n的数排成一个序列A,并使得所 ...
- python 回溯法 子集树模板 系列 —— 6、排课问题
问题 某乡村小学有六个年级,每个年级有一个班,共六个班. 周一到周五,每天上6节课,共计30节课. 开设的课程 一年级:语(9)数(9)书(2)体(2)美(2)音(2)德(2)班(1)安(1) 二年级 ...
- [Deep-Learning-with-Python]基于Kears的Reuters新闻分类
Reuters数据集下载速度慢,可以在我的repo库中找到下载,下载后放到~/.keras/datasets/目录下,即可正常运行. 构建神经网络将路透社新闻分类,一共有46个类别.因为有多个类别,属 ...
- proftpd启动失败提示unable to determine IP address of “xxx.com”
proftpd启动失败提示unable to determine IP address of “xxx.com”这种proftpd启动失败的原因是无法解析后面主机的IP地址,解决方法是在DNS列表中增 ...
- 项目 - RM 部署上centos7 之后出现的一些问题和解决方法
系统版本: [root@localhost logs]# cat /etc/redhat-release CentOS Linux release (Core) 获取方法来自:https://www. ...
- Microsoft Dynamics CRM 常用JS语法(已转成vs2017语法提示)
背景 最近接触到Microsoft Dynamics CRM的开发.前端js是必不可少的部分,奈何没有一个语法提示,点不出来后续的语句. 在vscode上面搜索插件的时候发现,有一个大神写的插件htt ...
- Docker原理探究
问题思考:-------------------------------------Docker浅显原理理解-------------------------------------P1. ubunt ...