树哈希 Hints

简化代码

注意 hash 的值具有可加减的特性,可以极大程度的简化代码。

同时可以维护可能作为答案的 “匹配池” 中的 hash 值,这样就不用进行(超级 dirty work 的)树加减了。

树哈希是一种集合哈希(?),所以支持加减!!!

hash 函数

我也不知道为什么大家都在用这个 hash 函数

ull shift(ull x) {return x ^= mask, x ^= x << 13, x ^= x >> 7, x ^= x << 17, x ^= mask, x;}
mask = mtrnd() * mtrnd();

当然,这个函数够随机就行(应该)。

特征值

  1. 无根树 hash 也可以采取“把以每个节点为根得到的 hsh 值都加起来(注意用另一个 hsh 函数)”(这个不知道好不好,但是好写,可能不够强)
  2. 重心
  3. 深度/节点大小
posted @   SkyMaths  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2023-11-07 摘录
2023-11-07 以前的 算法和代码 注意事项
2023-11-07 思路/优化
2023-11-07 2023/11/07
2023-11-07 CSP-S 2023 游记
点击右上角即可分享
微信分享提示