【题解】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 ...
随机推荐
- Android soundpool初探
内容:本编播客主要讲解一下“即时音效”: 特点:快,短. 在播放这类时间短但是要求反应迅速的的音效,就不能够用不能够使用播放时间较长的音乐播放技术了,而应该采取soundpool技术来播放. soun ...
- sql语句截取字符串
Postgresql 当中有四种方式获取当前时间. 一:now() 通过now()获取的时间是最完整的时间,包括时区,秒也保留到了6位小数. select now(); ...
- 20155211《网络对抗》Exp02 后门原理与实践
20155211<网络对抗>Exp02 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell,cron启动 (2)使用socat获取主机操作Shell, 任务计划启动 ( ...
- # 20155337《网络对抗》Exp9 Web安全基础
20155337<网络对抗>Exp9 Web安全基础 实践目标 一.基础问题回答 1.实验后回答问题 SQL注入攻击原理,如何防御 SQL注入攻击的本质是利用SQL语法,针对应用程序开发过 ...
- SQL Server 启动时发生错误1069:由于登录失败而无法启动
解决方法: (1). 我的电脑--控制面板--管理工具--服务--右键MSSQLSERVER--属性--登陆--登陆身份--选择"本地系统帐户". (2). 我的电脑- ...
- MFC 用ShellExecute打开外部文件
知识点: 获取CListCtrl选中文本 用ShellExecute打开外部文件 一.CListCtrl::GetFirstSelectedItemPosition CListCtrl::GetFir ...
- PostgreSQL同步方案
Windows下Postgre SQL数据库通过Slony-I实现数据库双机同步备份 - 数据库其他综合 - 红黑联盟 postgresql同步流复制的Hot Standby - CSDN博客 使 ...
- kali2.0 使用SSH进行远程登录
工具/原料 kali 2.0 ssh SSH连接工具(XShell) 一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#Passwo ...
- SQL SERVER数据库升级手册
背景 最近接手很多项目都跟数据库升级有关.感触还是颇深,写个心得,供大家参考,如果有疑问欢迎留言. 为什么升级? 你可能会因为各种各样的原因选择升级.我认为原因主要是3个方面 1.旧版本使 ...
- Js_图片轮播
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...