不怎呢会哈希,自己差不多弄了个。开始WA, 把mod的值改了AC了
/* PROG: gift1 LANG: C++ ID: grttman1 (<-- or C++11 if you prefer) */ #include <iostream> #include <fstream> #include <string> #include <cstring> #include <algorithm> using namespace std; const int maxn = 3000 + 5; int Hash[maxn]; char num[maxn][40]; int get_id(char *s) { int ans = 0; int t = 131; int mod = 179711; while(*s == '0') s++; while(*s) { ans = (ans * t + *s) % mod; s++; } //printf("%d\n", ans); return ans; } int main() { //freopen("gift1.in","r",stdin); //freopen("gift1.out","w",stdout); int N; while(scanf("%d", &N) == 1) { for(int i = 0; i < N; i++) { scanf("%s", num[i]); Hash[i] = get_id(num[i]); } int temp = 1, ans = 1; Hash[N] = -1; sort(Hash, Hash + N); for(int i = 0; i < N; i++) { if(Hash[i] == Hash[i + 1]) { temp++; ans = max(ans, temp); } else temp = 1; } printf("%d\n", ans); } return 0; }