思路:可看做求所有出现的数中次数最高的 次数,用hash的方法, 这里练一下模板
#include <iostream>
#include <stdio.h>
#include <cstring>
#define MOD 1000007
#define base 31
#define N 1000009
using namespace std;
struct note
{
int v,cnt,next;
}_hash[N];
int k;
int head[N];
void insert(int key)
{
int tmp=key%MOD;
_hash[k].v=key;
_hash[k].cnt=1;
_hash[k].next=head[tmp];
head[tmp]=k++;
}
int find(int key)
{
int tmp=key%MOD;
if(head[tmp]!=-1)
{
_hash[head[tmp]].cnt++;
return _hash[head[tmp]].cnt;
}
return 0;
}
int main()
{
//freopen("in.txt","r",stdin);
int n;
while(scanf("%d",&n)!=EOF)
{
k=0;
memset(head,-1,sizeof(head));
char f[40];
int ret=1;
for(int i=0;i<n;i++)
{
int tmp=0;
scanf("%s",f);
for(int j=0;j<strlen(f);j++)
{
tmp=tmp*base+(f[j]-'0');
}
tmp=tmp&0x7fffffff;
int val;
if(val=find(tmp))
ret=max(ret,val);
else
insert(tmp);
}
printf("%d\n",ret);
}
}