关于二叉树哈希
  • 板块学术版
  • 楼主_maojun__
  • 当前回复17
  • 已保存回复17
  • 发布时间2023/1/17 08:37
  • 上次更新2023/10/24 03:54:12
查看原帖
关于二叉树哈希
331153
_maojun__楼主2023/1/17 08:37

我之前在模拟赛上时有一题用二叉树哈希做,区分点权和结构,然后自己口胡了一个式子,过了学校OJ和洛谷的数据,但那题老师说暴力可以卡过去所以没有讲树哈希的做法。

这种树哈希判结构和点权的方法应该可以拓展到多叉树,但我不知道正确性。

siz[u]siz[u] 表示以 uu 为根的子树大小,w[u]w[u] 表示 uu 的点权,lsls 表示 uu 的左二子,rsrs 表示 uu 的右儿子,f[u]f[u] 为以 uu 为根的子树的哈希结果,g[u]g[u] 为一个辅助数组,seedseed 为区分层级的哈希质数,SeedSeed 为区分左右儿子的哈希质数。

g[u]=(g[ls]×seed+f[ls])+(g[rs]×seed+f[rs])×Seedg[u]=(g[ls]\times seed+f[ls])+(g[rs]\times seed+f[rs])\times Seed

f[u]=siz[u]×(g[u]+w[u])f[u]=siz[u]\times(g[u]+w[u])

求助这种哈希的正确性。

2023/1/17 08:37
加载中...