是这样的
> **友情提醒:如果真的想好好练习哈希的话,请自觉。**
by Yun_Mengxi @ 2024-03-15 20:15:15
@[Yun_Mengxi](/user/758416) ?
by quxiangyu @ 2024-03-15 20:25:52
@[Yun_Mengxi](/user/758416) 可以这么写吗
```cpp
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
ull base=131;
ull a[10010];
char s[10010];
int n,ans=1;
int prime=233317;
ull mod=212370440130137957ll;
ull hashe(char s[])
{
int len=strlen(s);
ull ans=0;
for (int i=0;i<len;i++)
ans=(ans*base+(ull)s[i])%mod+prime;
return ans;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%s",s);
a[i]=hashe(s);
}
sort(a+1,a+n+1);
for(int i=1;i<n;i++)
{
if(a[i]!=a[i+1])
ans++;
}
printf("%d",ans);
}
```
by quxiangyu @ 2024-03-15 20:27:08
C++版
by quxiangyu @ 2024-03-15 20:30:30
@[ErgouTree](/user/1216518) 你猜是不是直接放进 `set` 就行
by plamya @ 2024-03-15 20:31:19
@[quxiangyu](/user/1241537) 《hashe》
by Yun_Mengxi @ 2024-03-15 20:32:39
@[ErgouTree](/user/1216518) `print(len(set(input() for _ in range(int(input())))))`
by plamya @ 2024-03-15 20:32:49
@[ErgouTree](/user/1216518) `set` 和 `dict` 里都用的是哈希
by plamya @ 2024-03-15 20:33:25
@[plamya](/user/1309434) 但是我一开始没想到set,想到的居然是这个,所有乐了
by ErgouTree @ 2024-03-15 20:41:56
@[Yun_Mengxi](/user/758416) 是这样的
by ErgouTree @ 2024-03-15 20:42:46