NOI2022 挑战 NPC Ⅱ(哈希-树,dfs)
给两棵树大小差 \(k \le 5\),问能不能通过删 \(k\) 个叶节点使两棵树同构。
先预处理两棵树所有子树哈希值(这里用的是 xorshift,也可以用括号,用质数会碰撞)直接 bool match(u, v) 表示匹配两棵树上的 \(u, v\) 两点。如果两点的子树哈希值归并排序后不能抵消的对数 \(d = 1\),直接继续匹配子树。否则,枚举排列匹配第一棵树和第二棵树。时间复杂度是 \(\Theta(n(120 + \log))\) 的。
赛时脑子出问题了想不到啊。还好打了这题的无脑 \(80\) 分。

浙公网安备 33010602011771号