样例过了,自己输入的几个例子也对了不知道为什么就AC了第一个
查看原帖
样例过了,自己输入的几个例子也对了不知道为什么就AC了第一个
1262697
slehand楼主2024/1/21 01:27
#include <iostream>
#include <bits/stdc++.h>
//#define int long long
typedef unsigned long long ULL;
#define endl '\n'
using namespace std;
#define p 131


ULL BKDR_hash(string str,int N)
{   int s[N+1];s[1]=1;int h[N+1];
    for(int i=1;i<=N;i++)
    {
        h[i]=h[i-1]*p+str[i];
        s[i]=s[i-1]*p;
    }
    return h[N];
}
int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    set<int> hash_code;
    int N;int out;
    cin>>N;
    string str;
    for(int i = 1;i <= N;i++)
    {
        cin >> str;
        out=BKDR_hash(str,str.size());
        hash_code.insert(out);
    }
    cout<<hash_code.size();
    return 0;
}
2024/1/21 01:27
加载中...