如下文,发现了一个很有趣的做法,以至于给我自己整乐了

P3370 【模板】字符串哈希

是这样的 > **友情提醒:如果真的想好好练习哈希的话,请自觉。**
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


| 下一页