题意:前面的都是废话。。。其实直接看输入要求和输出要求就可以了,就是给你两个字符串,问你第一个字符串在第二个字符串中出现几次;

解题思路:kmp。。。

代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#define M 10050
#define N 1005000
using namespace std;
int next1[M];
char s[N];
char t[M];
int slen,tlen;
void get_next()
{
int j=0,k=-1;
next1[0]=-1;
while(j<tlen)
{
if(k==-1||t[j]==t[k])
{
next1[++j]=++k;
}
else
k=next1[k];
}
}
int kmp_cnt()
{
int ans=0,i=0,j=0;
if(slen==1&&tlen==1)
{
if(s[0]==t[0])
return 1;
else
return 0;
}
get_next();
for(int i=0;i<slen;i++)
{
while(j>0&&s[i]!=t[j])
j=next1[j];
if(s[i]==t[j])
j++;
if(j==tlen)
{
ans++;
j=next1[j];
}
}
return ans;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int tt;
cin>>tt;
while(tt--)
{
cin>>t;
cin>>s;
tlen=strlen(t);
slen=strlen(s);
cout<<kmp_cnt()<<endl;
}
}

  

最新文章

  1. Zju1015 Fishing Net
  2. C#之 HashSet(临时笔记,未参考资料,请慎重)
  3. [wikioi]过河卒
  4. Day 16: Goose Extractor —— 好用的文章提取工具
  5. Socket通信原理和实践
  6. c#操作sqlite
  7. 远程控制利器TeamViewer使用教程(图)
  8. vim添加自己//解决方案
  9. ue4粒子实现流血效果
  10. 通过Azure Powershell获取asm及arm虚拟机的配置信息
  11. extjs 中比较常见且好用的监听事件
  12. ESP8266 RTOS SDK编译环境搭建
  13. python小总结2(time,os)
  14. c# nginx 配置
  15. spring 中连接多个数据源
  16. SpringSecurity初步理解
  17. centos下升级git版本的操作记录
  18. python补充3
  19. MariaDB 数据库系统概述(1)
  20. mysql 创建和删除用户

热门文章

  1. mysql 行转列 列转行
  2. 一本通 1212:LETTERS
  3. UIImage 类说明
  4. 【php增删改查实例】第二十二节 - 引入百度地图
  5. 跨域访问-需要设置HTTP响应标头
  6. RNG牛掰!
  7. Leetcode 686 Repeated String Match
  8. H5 60-浮动元素排序规则
  9. maven新建项目
  10. HDU 3478 Catch (连通性&amp;&amp;二分图判断)