Oulipo(poj 3461)
题意:求b这个字符串在a中出现的次数
这里不用KMP,用hash
#include<cstdio>
#include<iostream>
#include<cstring>
#define P 29
#define N 1000010
using namespace std;
char a[N],b[N];int n1,n2,p,S,hash[N];
void get_p(){
p=;
for(int i=;i<=n1;i++)
p*=P;
}
void get_hash(){
S=;
for(int i=;i<=n1;i++)
S=S*P+a[i]-'a'+;
hash[]=;
for(int i=;i<=n2;i++)
hash[i]=hash[i-]*P+b[i]-'a'+;
}
int query(int x){
return hash[x+n1-]-hash[x-]*p;
}
int main(){
int T;scanf("%d",&T);
while(T--){
scanf("%s%s",a+,b+);
n1=strlen(a+);n2=strlen(b+);
get_p();get_hash();
int ans=;
for(int i=;i<=n2-n1+;i++)
if(query(i)==S)ans++;
printf("%d\n",ans);
}
return ;
}
Oulipo(poj 3461)的更多相关文章
- 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)
		Charm Bracelet POJ 3624 就是一道典型的01背包问题: #include<iostream> #include<stdio.h> #include& ... 
- Scout YYF I(POJ 3744)
		Scout YYF I Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5565 Accepted: 1553 Descr ... 
- 广大暑假训练1(poj 2488) A Knight's Journey   解题报告
		题目链接:http://vjudge.net/contest/view.action?cid=51369#problem/A (A - Children of the Candy Corn) ht ... 
- Games:取石子游戏(POJ 1067)
		取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37662 Accepted: 12594 Descripti ... 
- BFS 或 同余模定理(poj 1426)
		题目:Find The Multiple 题意:求给出的数的倍数,该倍数是只由 1与 0构成的10进制数. 思路:nonzero multiple 非零倍数 啊. 英语弱到爆炸,理解不了题意... ... 
- 并查集+关系的传递(poj 1182)
		题目:食物链 题意:给定一些关系.判断关系的正确性,后给出的关系服从之前的关系: 思路:难点不在并查集,在于关系的判断,尤其是子节点与根节点的关系的判断: 这个关系看似没给出,但是给出子节点与父节点的 ... 
- 昂贵的聘礼(poj 1062)
		Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ... 
- Collecting Bugs(POJ 2096)
		Collecting Bugs Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 3064 Accepted: 1505 ... 
- Power string(poj 2406)
		题目大意,给出一个字符串s,求最大的k,使得s能表示成a^k的形式,如 abab 可以表示成(ab)^2: 方法:首先 先求kmp算法求出next数组:如果 len mod (len-next[len ... 
随机推荐
- 第12天 android studio
			1. http://jingyan.baidu.com/article/215817f7888dc21eda14230d.html Gradle DSL method not found:‘andro ... 
- MySQL中快速复制数据表方法汇总
			本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: ... 
- JVM内存分析工具MAT使用
			1. 首先去官网下载MAT软件,路径如下: 点击打开链接 2. 将heap dump文件打开即可分析. 
- HDU 1085 Holding Bin-Laden Captive!(DP)
			题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1085 解题报告:有1,2,5三种面值的硬币,这三种硬币的数量分别是num_1,num_2,num_5, ... 
- 关于Promise:你可能不知道的6件事
			FROM ME : 文章介绍了6个Promise的知识点: 1.then() 返回一个 forked Promise(分叉的 Promise):返回的有两种情况: 2.回调函数应该传递结果:在 pro ... 
- python文件头的#-*- coding: utf-8 -*- 的作用
			这一句其实是告诉编辑器,我的代码使用的格式是utf-8,如果没有这句编辑器就会自动去识别代码的文件格式,如果发现文件格式不是utf-8,就有可能去将编码格式转换为utf-8,比如本来是gbk的,编辑器 ... 
- 160809225_叶桦汀_C语言程序设计实验2 选择结构程序设计_进阶
			#include<stdio.h> #include<math.h> int main() { int a,b,c,l,p,s; printf("请输入三个数:&qu ... 
- RouterOS首次打开网页强制跳转
			网上极少有关于RouterOS的第一次打开网页强制跳转主页的方法,大多数都方法是将浏览某个域名的IP地址跳转到自己的主页,这种方法有时会失效.还有一种方法就是当用户用80端口连接时,抓取源地址到地址列 ... 
- 表单验证神器——jquery.validate插件
			jquery.validate.js插件应用举例,ajax方式提交数据. html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ... 
- COGS 2387.[HZOI 2016]2387题解
			题目大意: 给定一个有n个元素的数组,有m个操作,分为两种,分别是询问第k个x的下标和把下标为x的数修改为k. 题目设置了强制在线,故无法预先得知所有操作数. 思路: 有三种思路. 第一种:平衡树 b ... 
