【HDOJ】1800 Flying to the Mars
1 /* 1800 */
2 #include <iostream>
3 #include <sstream>
4 #include <string>
5 #include <map>
6 #include <queue>
7 #include <set>
8 #include <stack>
9 #include <vector>
10 #include <deque>
11 #include <bitset>
12 #include <algorithm>
13 #include <cstdio>
14 #include <cmath>
15 #include <ctime>
16 #include <cstring>
17 #include <climits>
18 #include <cctype>
19 #include <cassert>
20 #include <functional>
21 #include <iterator>
22 #include <iomanip>
23 using namespace std;
24 //#pragma comment(linker,"/STACK:102400000,1024000")
25
26 #define sti set<int>
27 #define stpii set<pair<int, int> >
28 #define mpii map<int,int>
29 #define vi vector<int>
30 #define pii pair<int,int>
31 #define vpii vector<pair<int,int> >
32 #define rep(i, a, n) for (int i=a;i<n;++i)
33 #define per(i, a, n) for (int i=n-1;i>=a;--i)
34 #define clr clear
35 #define pb push_back
36 #define mp make_pair
37 #define fir first
38 #define sec second
39 #define all(x) (x).begin(),(x).end()
40 #define SZ(x) ((int)(x).size())
41 #define lson l, mid, rt<<1
42 #define rson mid+1, r, rt<<1|1
43
44 const int maxl = 105;
45 const int MOD = 7003;
46 int H[MOD], cnt[MOD];
47 char s[maxl];
48 int n, ans;
49
50 inline int ELFHash(char *s) {
51 unsigned int h = 0;
52 unsigned int g;
53 int i = 0;
54
55 while (s[i]) {
56 h = (h<<4) + s[i];
57 g = h & 0xf0000000L;
58 if (g) {
59 h ^= (g >> 24);
60 h &= ~g;
61 }
62 ++i;
63 }
64
65 return h & 0x7fffffff;
66 }
67
68 inline void Hash(char *s) {
69 int i = 0;
70
71 while (s[i]=='0') ++i;
72 int k = ELFHash(s+i);
73 int t = k % MOD;
74
75 while (H[t]!=-1 && H[t]!=k)
76 t = (t + 10) % MOD;
77
78 if (H[t] == -1) {
79 cnt[t] = 1;
80 H[t] = k;
81 } else if (++cnt[t] > ans) {
82 ans = cnt[t];
83 }
84 }
85
86 int main() {
87 ios::sync_with_stdio(false);
88 #ifndef ONLINE_JUDGE
89 freopen("data.in", "r", stdin);
90 freopen("data.out", "w", stdout);
91 #endif
92
93 while (scanf("%d",&n)!=EOF) {
94 memset(H, -1, sizeof(H));
95 ans = 1;
96 rep(i, 0, n) {
97 scanf("%s", s);
98 Hash(s);
99 }
100 printf("%d
", ans);
101 }
102
103 #ifndef ONLINE_JUDGE
104 printf("time = %d.
", (int)clock());
105 #endif
106
107 return 0;
108 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.