poj_1200_Crazy Search_hash

发布于 2019-04-24  885 次阅读


题目大意

在一个字符串中找到长度为n的不同子串的个数

思路

可以将每一个子串的化成一个独一无二的数存在hash中,然后暴力一下判重就可以了
O(n*m)

#include 
#include 
#include 
#define M 16000000
using namespace std;
int h[M];
char s[M];
int a[100000];
int main()
{
    int n,nc;
    scanf("%d%d",&n,&nc);
    scanf("%s",&s);
    int len=strlen(s);
    int x=0;
    for (int i=0;i<=len-1;i++)
    {
        if (a[s[i]]==0)
        {
            x++;
            a[s[i]]=x;
        }
    }
    int ans=0;
    for (int i=0;i
]]>