【题目描述】
今天 mk 去撸串 ,恰逢店里活动 ,如果吃一种串串超过记录, 可以
赠送 328, 所以 mk 想知道他吃的串串中吃的最多的种类是什么.
【输入格式】
第一行一个整数 1<=n<=50000;
然后有 n 行长度<=100 的全部由小写字母组成的字符串;每个代表一种串串
【输出格式】
同种字符串最多出现次数
【样例输入】
4
abcd
abcd
abcd
ac
【样例输出】
3
【提示】
对于 40%数据 1<=n<=3000;
对于 100%数据 1<=n<=50000;
【来源】
mk
hash
Mod值取了好几次才对 唉还是我太弱了
#include <cstring>
#include <cstdio>
#define N 50005
#define Mod 49477 int n,ans,Hash[N];
char str[];
int main(int argc,char *argv[])
{
freopen("string_.in","r",stdin);
freopen("string_.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;++i)
{
scanf("%s",str);
int v=;
int len=strlen(str);
for(int i=;i<len;++i) v=(v*+str[i]-'A')%Mod;
Hash[v]++;
if(Hash[v]>ans)
ans=Hash[v];
}
printf("%d\n",ans);
return ;
}