由于已经给出字符只有NC种,故可以把子串视为一个NC进制的数,以此构造hash函数就可以了

 #include <set>
#include <map>
#include <cmath>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int MAXN=;
char s[MAXN];int hash[MAXN],num[];
int main(){
for(int N,NC;scanf("%d%d",&N,&NC)!=EOF;){
memset(hash,,sizeof(hash));
memset(num,,sizeof(num));
scanf("%s",s+);
int cnt=,ans=,len=strlen(s+);
for(int i=;i<=len&&cnt<=NC;i++)if(!num[s[i]])num[s[i]]=cnt++;
for(int i=;i<=len-N+;i++){
int hashi=;for(int j=i;j<=i+N-;j++)hashi=hashi*NC+num[s[j]];
hash[hashi]?:ans++,hash[hashi]=;
}
cout<<ans<<endl;
}
return ;
}

最新文章

  1. android布局居中
  2. [并查集] POJ 2236 Wireless Network
  3. 20145337《Java程序设计》第四周学习总结
  4. Spring day03笔记
  5. JavaScript-分支语句与函数
  6. HDU 4902 (线段树)
  7. From MSI to WiX, Part 4 - Features and Components by Alex Shevchuk
  8. Fixflow引擎解析(五)(内核) - 基于Token驱动的引擎内核运转原理
  9. Dublin Core
  10. OpenStack Block Storage安装配置use LVM
  11. Git客户端(Windows系统)的使用(Putty)(转)
  12. 使用charles抓取htpps的方法
  13. springboot 1.5.2 集成kafka 简单例子
  14. 201521123013 《Java程序设计》第14周学习总结
  15. 焦点轮播图(tab轮播)
  16. Java异常实战——OutOfMemoryError
  17. 20175236 JAVA MyCP(课下作业)
  18. java集合 线程安全
  19. IOS7如何获取设备唯一标识
  20. Spring Batch 体系结构

热门文章

  1. 限定输入框只能输入数字, TextBox的TextChanged事件调用
  2. 解决officeOnline文档预览服务器只能域名提交的限制Redirect
  3. 关于牛客网C语言结构体位域(bit-fields)的一道题
  4. nginx反向代理(1)
  5. MySql 小表驱动大表
  6. NSSM 将jar 安装成windows服务
  7. DFS-B - Dr. Evil Underscores
  8. Gauss消元模板
  9. [AtCoder Code Festival 2017 QualB C/At3574] 3 Steps - 二分图染色,结论
  10. [HNOI2013] 消毒 - 二分图匹配