树哈希 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();
当然,这个函数够随机就行(应该)。
特征值
- 无根树 hash 也可以采取“把以每个节点为根得到的 hsh 值都加起来(注意用另一个 hsh 函数)”(这个不知道好不好,但是好写,可能不够强)
- 重心
- 深度/节点大小
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 游记