- 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;
来源: http://www.bubuko.com/infodetail-3218994.html