首页 > TAG信息列表 > 两棵树

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

NOI2022 挑战 NPC Ⅱ 给两棵树大小差 \(k \le 5\),问能不能通过删 \(k\) 个叶节点使两棵树同构。 CODE 先预处理两棵树所有子树哈希值(这里用的是 xorshift,也可以用括号,用质数会碰撞)直接 bool match(u, v) 表示匹配两棵树上的 \(u, v\) 两点。如果两点的子树哈希值归并排序后不能抵

树的直径

树的直径 给定一棵树,树的每条边都有一个权值,树中两点之间的距离定义为连接两点的路径上的边权之和。树上最远的两个节点之间的距离被称为树的直径,连接这两点的路径被称为树的最长链。后者通常也可称为直径,即直径既是一个数值概念,也可代指一条路径。 树的直径有两种求法,时间复杂度

虚拟dom

虚拟 dom 是相对于浏览器所渲染出来的真实 dom而言的,在 react,vue 等技术还没出现之前,我们想要改变页面展示的内容只能通过遍历查询 dom 树的方式,找到需要修改的 dom 然后进行样式行为或者结构的修改,以达到更新 ui 的目的。这样几乎每一次修改都需要遍历整颗dom树,会非常消耗性能。

FHQ Treap

本质:无 rotate 平衡树。 一旦没了 rotate,代码就短好多,思路也清晰。 首先说一下,这个东西可以搞一切 bst , treap , splay 所能搞的东西。 ——自为风月马前卒 整个数据结构中只有 \(2\) 种操作、\(1\) 种询问: \(\mathtt{split}\) 把一棵树分成两棵树。 \(\mathtt{merge}\) 把

对克鲁斯卡尔过程的更深理解

在克鲁斯卡尔排序过后,如果有边权相同的若干条边,可以将它们以任意顺序进行遍历。 因为任意两棵树可以通过加一条边同时删除一条边达到,即这两棵树的边数是相同的。 所以以任意顺序进行遍历,若最后无法形成一棵树,则任何一种遍历顺序都无法形成一棵树。

相同的树 深度优先遍历

题目:   给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。   如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 思路:   终止条件与返回值:   当两棵树的当前节点都为 null 时返回 true   当其中一个为 null 另一个不为 null 时返