• 【HDOJ】1800 Flying to the Mars


    1. 题目描述
    挺简单的一道题,给定$n$个大整数,求出现最多的次数。

    2. 基本思路
    这题是可以使用哈希做,ELFHash等哈希都可以过。

    3. 代码

      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 }
  • 相关阅读:
    java中检测-在运行时指定对象是否是特定类的一个实例---关键字 instanceof
    关于Filter中ServletRequest和ServletResponse强转HttpServletRequest和HttpServletResponse
    jsp内置对象
    blender使用快捷键
    react-native学习笔记四====》配置路由(react-navigation4.x)
    react-native学习笔记三====》调试工具配置(chorm+react-devtools)
    react-native学习笔记二====》配置路由(react-navigation3.x)
    react-native学习笔记一====》环境搭建(填坑)
    vue表格打印
    学习资源
  • 原文地址:https://www.cnblogs.com/bombe1013/p/5285557.html
Copyright © 2020-2023  润新知