HashTable 板子

struct HashTable {
    typedef ull T;
    typedef int S;
    static const int N = (int)1e6 + 7;
    static const int M = (int)1e5 + 7;
    int head[N], tot;
    struct Node {
        T fval;
        S sval;
        int nex;
    } a[M];
    void clear() {
        memset(head, -1, sizeof(head));
        tot = 0;
    }
    void insert(T fval, S sval) {
        int p = fval % N;
        a[tot].fval = fval;
        a[tot].sval = sval;
        a[tot].nex = head[p];
        head[p] = tot++;
    }
    S find(T fval) {
        int p = fval % N;
        for(int i = head[p]; ~i; i = a[i].nex) {
            if(a[i].fval == fval) return a[i].sval;
        }
        return -1;
    }
} Map;
原文地址:https://www.cnblogs.com/CJLHY/p/11609701.html