一种很新的哈希

来自 @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;
posted @ 2023-03-16 10:37  5k_sync_closer  阅读(16)  评论(0编辑  收藏  举报  来源