Loading

NOI2022 挑战 NPC Ⅱ(哈希-树,dfs)

NOI2022 挑战 NPC Ⅱ

给两棵树大小差 \(k \le 5\),问能不能通过删 \(k\) 个叶节点使两棵树同构。

CODE

先预处理两棵树所有子树哈希值(这里用的是 xorshift,也可以用括号,用质数会碰撞)直接 bool match(u, v) 表示匹配两棵树上的 \(u, v\) 两点。如果两点的子树哈希值归并排序后不能抵消的对数 \(d = 1\),直接继续匹配子树。否则,枚举排列匹配第一棵树和第二棵树。时间复杂度是 \(\Theta(n(120 + \log))\) 的。

赛时脑子出问题了想不到啊。还好打了这题的无脑 \(80\) 分。

posted @ 2022-09-15 10:22  Pizza1123  阅读(62)  评论(0)    收藏  举报