经过哈希的字符串答案都是0,就想知道为什么会这样
代码
#include <bits/stdc++.h>
using namespace std;
const int p = 9999973, base = 171;
int n, h[10001];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
char str[10001];
scanf("%s", str + 1);
int res = 0, l = strlen(str);
for (int i = 1; i <= l; i++)
res = (res * base + (str[i] - 'a')) % p;
h[i] = res;
}
sort(h + 1, h + n + 1);
int ans = 0;
for (int i = 1; i < n; i++)
if (h[i] != h[i + 1])
++ans;
printf("%d\n", ans);
return 0;
}