Crazy Search (哈希算法)

zz/2024/2/25 22:13:44

给定一个字符串,其中含有不同的字母数量为m,现在求这个字符串中有多少个长度为n且长的互不相同的字符子串
举个例子, n=3, m=4 ,字符串 “daababac”. 长度为3的不同的子串分别是: “daa”; “aab”; “aba”; “bab”; “bac”. 因此, 答案是5.


Input
第一行是两个整数n,m,,一个空格隔开。 接下来一行是我们要解决的字符串.( 你可以认为字符串的长度不会超过一千六百万。)Orz我读错题了,并不是字符串长度不超过1600万,是合理hash之后的hash的值不超过1600万。Orz原谅我


Output
程序应该输出一个整数,对应于给定文本中所找到的大小为n的不同子字符串的数量。


输入数据
3 4
daababac


输出数据
5


提示
输入数据量庞大,推荐使用scanf


#include <cstdio>
#include<string>
#include<cstring> 
using namespace std;
//typedef unsigned long long ull;
//const ull mod=1e9+7;
bool Hash[16000001];
int w[500];
char s[16000001];
int main(){int n,nc,cnt,ans,i,j,l,sum;while(~scanf("%d%d",&n,&nc)){cnt=0;ans=0;memset(w,-1,sizeof(w));memset(Hash, false, sizeof(Hash));scanf("%s",s);l=strlen(s);for(i=0;i<l&&cnt<nc;i++)if(w[s[i]]==-1)w[s[i]]=cnt++;for(i=0;i<l-n+1;i++){sum=0;for(j=i;j<i+n;j++)sum=sum+sum*nc+w[s[j]];
//                sum=sum%mod+sum*nc+w[s[j]]%mod;   防止超时 if(!Hash[sum]){ans++;Hash[sum]=true;}}printf("%d\n",ans);}return 0;
}

http://www.ngui.cc/zz/2641761.html

相关文章

街区最短路径问题(曼哈顿距离)

街区最短路径问题 一个街区有很多住户&#xff0c;街区的街道只能为东西、南北两种方向。 住户只可以沿着街道行走。 各个街道之间的间隔相等。 用(x,y)来表示住户坐在的街区。 例如&#xff08;4,20&#xff09;&#xff0c;表示用户在东西方向第4个街道&#xff0c;南北方…

HDU 找单词

Problem Description 假设有x1个字母A&#xff0c; x2个字母B,… x26个字母Z&#xff0c;同时假设字母A的价值为1&#xff0c;字母B的价值为2,… 字母Z的价值为26。那么&#xff0c;对于给定的字母&#xff0c;可以找到多少价值<50的单词呢&#xff1f;单词的价值就是组成一…

先验概率、后验概率、极大似然估计

先验概率 先验概率&#xff08;prior probability&#xff09;是指根据以往经验和分析得到的概率。例如投硬币事件&#xff0c;我们在执行这个事件之前就已经了解其符合二项分布&#xff0c;然后直接根据二项分布分析出的概率被称作是先验概率。它往往作为"由因求果"…

Python 网页爬虫

import re #匹配的库 import requests headers {Cookie:UM_distinctid16828a999356ee-01dbffc4bd71a8-33504275-144000-16828a99936840; CNZZDATA12553571271573548009-1546867979-%7C1546921578,Host:m.网站名称.com,User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) Apple…

将文件数据读入结构体

将文件数据读入结构体 #include <stdio.h> #include <string.h> #include <stdlib.h> struct infostu {char no[20]; //学号 char name[20]; char sex[4];int age;char major[20]; //专业班级 }; int main() {int i0,j;struct infostu student[5…

CNN——卷积、池化与误差反向传播

卷积神经网络&#xff08;CNN&#xff09; 组成&#xff1a;输入层、卷积层、激活函数、池化层、全连接层 卷积神经网络中重要概念就&#xff1a; 深度&#xff1a;深度大小就等于所用的filter的个数[卷积层]&#xff0c;也可以理解为提取的层数。 权值共享&#xff1a;给一张…

iOS H5交互 -MUI

最近公司要求以后的项目要用iOS原生框架和h5页面结合完成,发现网上这方面的资料好少(js交互的资料是挺多的&#xff0c;我的h5页面是用MUI完成的&#xff0c;这方面的资料真的好少) 把我最近的进度做个总结 去MUI官网下载SDK 点击这里查看官方文档&#xff0c;下载SDK 下图是SD…

Hibernate配置异常

Orders和OrderItem配置 错误如图&#xff1a; 找了很久&#xff0c;才发现是因为和数据库对应的字段不同。 实体类&#xff1a; orders OrderItem xxx.hbm.xml 由于数据库对应的字段不存在itemid&#xff0c;所以图片上蓝色这一段代码应不要 数据库表格&#xff1a;

ssh+filter+cookie实现自动登陆

在ssh中&#xff0c;filter的web.xml没有正确配置的话&#xff0c;就会出现空指针异常&#xff0c;因为他执行的时候没有去找bean。也就是说filter和spring没有结合起来 实现用户自动登陆就是把用户信息保存在cookie里&#xff0c;当用户第二次访问的时候无需登陆。 实现自动…

hql语句中使用占位符:xx 的时候,查询所有查询查不出来

在hql语中&#xff0c;我们可以使用&#xff1f;也可以使用占位符&#xff1a;xx&#xff0c; 其中&#xff1f;可以使用query.setParameter(0,"%%"); 但是占位符使用query.setParameter("xx","%%")&#xff1b;的时候查询不出来所有的记录&am…