cogs1570 KMP hash
cogs1570
【输入格式】
输入包含多组数据。
输入文件的第一行有一个整数,代表数据组数。接下来是这些数据,以如下格式给出:
第一行是单词W,一个由{‘A’,’B’,’C’,…,’Z’}中字母组成的字符串,保证1<=|W|<=10000(|W|代表字符串W的长度)
第二行是文章T,一个由{‘A’,’B’,’C’,…,’Z’}中字母组成的字符串,保证|W|<=|T|<=1000000。
【输出格式】
对每组数据输出一行一个整数,即W在T中出现的次数。
【样例输入】
3
BAPC
BAPC
AZA
AZAZAZA
VERDI
AVERDXIVYERDIAN
【样例输出】
1
3
0
//#include <bits/stdc++.h>
#include<stdio.h>
#include<string.h>
#include<string>
#include<math.h>
#include<algorithm>
#include<iostream>
#include<queue>
#include<vector>
#include<stack>
#include<map>
#include<set>
#include<stdlib.h>
#include<time.h>
#include <iomanip>
#define lowbit(x) (x&(-x))
#define inf 0x7fffffff
#define linf 0x7fffffffffffffff
#define fil(x,y) memset(x,y,sizeof(x))
#define fup(i,x,y) for(int i=(x);i<=(y);i++)
#define fdn(i,x,y) for(int i=(x);i>=(y);i--)
#define sp(x) setprecision(x)
#define sd(n) scanf("%d",&n)
#define sdd(n,m) scanf("%d%d",&n,&m)
#define sddd(n,m,k) scanf("%d%d%d",&n,&m,&k)
#define sld(n) scanf("%lld",&n)
#define sldd(n,m) scanf("%lld%lld",&n,&m)
#define slddd(n,m,k) scanf("%lld%lld%lld",&n,&m,&k)
#define sf(n) scanf("%lf",&n)
#define sff(n,m) scanf("%lf%lf",&n,&m)
#define sfff(n,m,k) scanf("%lf%lf%lf",&n,&m,&k)
#define sc(n) scanf("%s",n)
#define pf(x) printf("%d\n",x)
#define pfl(x) printf("%lld\n",x)
#define pff(x) printf("%lf\n",x)
#define debug printf("!!\n");
#define N 4000*102
#define M 4000009
#define pi acos(-1)
#define eps 1e-2
//cout.setf(ios::fixed);
//freopen("out.txt","w",stdout);// freopen("in.txt","r",stdin);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
const int mod=1e9+7;
char c1[10005],c2[1000005];
ull base=131;
ull has[1000005],tp[1000005];
void ini()
{tp[0]=1;fup(i,1,10005)tp[i]=tp[i-1]*base;
}
ull sum(int l,int r)
{return has[r]-has[l-1]*tp[r-l+1];
}
void solve()
{sc(c1);sc(c2+1);ull a=0;fup(i,0,strlen(c1)-1){a=a*base+(ull)c1[i];}int len=strlen(c1),n=strlen(c2+1),ans=0;fup(i,1,n)has[i]=has[i-1]*base+(ull)c2[i];for(int i=1;i+len-1<=n;i++)if(a==sum(i,i+len-1)) ans++;pf(ans);
}
int main()
{int tt=1;ini();sd(tt);while(tt--){solve();}return 0;
}
cogs1570 KMP hash相关推荐
- NC19822 我不爱她 kmp+hash
链接:https://ac.nowcoder.com/acm/problem/19822 来源:牛客网 题目描述 终于活成了自己讨厌的样子. 天空仍灿烂,它爱着大海. 你喜欢大海,我爱过你. 世界上充 ...
- UVA 11557 - Code Theft (KMP + HASH)
UVA 11557 - Code Theft 题目链接 题意:给定一些代码文本.然后在给定一个现有文本,找出这个现有文本和前面代码文本,反复连续行最多的这些文本 思路:把每一行hash成一个值.然后对 ...
- KMP,HASH,Trie,AC自动机
我做个总结算了下午看了一下AC自动机和学习我的大生物(当然是多谢鑫神了)..完了要崩.. 1 KMP 只要是学过的人都觉得比较简单吧 但是学不会的人就感觉很难了,我是那种顿悟的然后感觉非常简单的人过程 ...
- 各种模板(数学数论字符串)
文章目录 数学&数论 线性求逆元 exgcd excrt FFT NTT 矩阵乘法 线性筛素数 杜教筛 字符串 Trie KMP hash Manacher AC自动机 PAM SAM 广义S ...
- 2020牛客暑假多校第二场补题
比赛链接:link 题目 A kmp + Hash B 几何 C dfs D 签到题 F 单调区间 + gcd筛 G bitset神奇用法 H 权值线段树(动态开点/离散化) J 群论 A k ...
- 8.6 正睿暑期集训营 Day3
目录 2018.8.6 正睿暑期集训营 Day3 A 亵渎(DP) B 绕口令(KMP) C 最远点(LCT) 考试代码 A B C 2018.8.6 正睿暑期集训营 Day3 时间:5h(实际) 期 ...
- 【笔记】震惊!世上最接地气的字符串浅谈(HASH+KMP)
震惊!世上最接地气的字符串浅谈(HASH+KMP) 笔者过于垃圾,肯定会有些错的地方,欢迎各位巨佬指正,感激不尽! 引用:LYD的蓝书,一本通,DFC的讲稿,网上各路巨佬 Luguo id: 章鱼那个 ...
- SZUACM集训字符串基础总结: 字符串最小表示 ,KMP, EXKMP, Manracher, Trie树,字符串的hash; 附带一写常见的运用技巧,邝斌大佬的板子和例题[持续更新]
第一部分 字符串的匹配<-------->KMP 模式匹配:子串的定位运算称为串的模式匹配或串匹配. 假设有两个串S,T,设S为主串,也称正文串,T为子串,也称为模式,在主串S中查找与模式 ...
- 【牛客OI周赛7-普及组ABCD 非官方题解】暴力,二分,KMP,尺取(STL或Hash)
A: 链接:https://ac.nowcoder.com/acm/contest/372/A 来源:牛客网 某天,一只可爱的肥橘喵在路上走,突然遇到了一个怪人,那怪人自称PM6,"小肥喵, ...
- SCU4438 Censor(审查员) (KMP算法与模拟栈的应用 || HASH表与模拟栈的结合)
Censor frog is now a editor to censor so-called sensitive words (敏感词). She has a long text pp. Her j ...
最新文章
- 我是 Redis,MySQL 大哥被我害惨了!
- python全栈开发 * 表格标签 表单标签 css 引入方式 * 180807
- 46. Permutations 排列数
- 服务容错、限流、资源隔离、熔断、监控…3天,撸完了!
- h5物体拖动_html5实现拖拽效果
- cad.net 读取pc3,pmp 读取pc3打印机文件
- 怎么比较字符串java_如何在Java中比较字符串?
- 基于Java毕业设计移动电商网站源码+系统+mysql+lw文档+部署软件
- 使用 JMeter 进行API接口压力测试
- php中百度编辑器的使用
- P2037 电话号码
- 室内红外线防盗报警器matlab,红外防盗报警系统毕业设计论文.doc
- 暴力破解防范措施和措施总结
- C++(11):显示删除函数=delete
- 癸卯年新春贺文 --孤羽江绎
- 来电设置小技巧 拒收垃圾短信 拒接不想接的电话
- Linux中ftp安装与基本操作
- WampServer操作手册--转
- spark任务卡住问题原因之一以及解决方案
- 数据可视化(七):可视化设计实战