一种很新的哈希
来自 @reveal,感觉很酷,就记下来了。
令键值的前 24 位为 $a$,后 8 位为 $b$,
建立 $a$ 对 $1\sim n$ 的映射 $k$,然后存数组 $c_{k,b}$ 就行了。
//by reveal
struct emap{
int a[1<<24],size;
pr t[N][1<<8];
pr& operator[](int x){
if(!a[x>>8]) a[x>>8]=++size;
return(t[a[x>>8]][x&255]);
}
}all;