首页 > 其他分享 >Static Query on Tree (述链剖分+线段树)(2022杭电多校)

Static Query on Tree (述链剖分+线段树)(2022杭电多校)

时间:2022-09-06 09:13:15浏览次数:78  
标签:链剖分 结点 杭电多校 线段 Tree 该点 集合 节点

题意:

给定一棵树,nn 个结点。根为 11,所有的结点只能走向其父亲结点。

有 qq 次询问,每次询问给出 33 个结点集合 A,B,CA,B,C。问树上有多少点满足如下条件:

  • 该点可以从集合 AA 中的至少一个结点到达。
  • 该点可以从集合 BB 中的至少一个结点到达。
  • 该点可以到达集合 CC 中的至少一个结点。

题解;

  • 对于 A,B, 就是当前节点到根节点的所有点
  • 对于C, 就是C 的所有 儿子节点
  • 利用树剖+线段树解决

后记:

  • 好久没用线段树了, 线段树功能强大,一般要用 lazy 优化(能区间返回就区间返回)

标签:链剖分,结点,杭电多校,线段,Tree,该点,集合,节点
From: https://www.cnblogs.com/Lamboofhome/p/16660459.html

相关文章

  • Sourcetree 如何关联自己的gitlab仓库
    现在有些企业自己搭建了gitlab服务器,通过sourcetree从企业服务器拉取代码的时候会提示认证失败。今天搞了大半天才搞懂,给我自己做个笔记。添加账户托管服务商选择G......
  • leetcode 104. Maximum Depth of Binary Tree 二叉树的最大深度(简单)
    一、题目大意给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,......
  • DOS Card (线段树)(hud杭电多校)
    题目:对序列 a,回答 q 次询问:给定长度至少为 4 的区间 [L,R],在区间内选择 1对 (ai,aj)(L≤i<j≤R)可以获取分数 (ai+aj)(ai−aj) ,计算选择 2 对可以获取的最......
  • sourcetree安装
    安装版本3.4.60.安装前准备安装包下载和安装gitsourcetree3.4.6安装包密码:5ercgit安装包,这个免费,点击安装无脑下一步即可,也可以用sourcetree自动安装git,但是会......
  • element Tree 树形控件 指定点击,一级或二级或某级菜单, 触发事件
    改变数据结构(添加属性)data:[{label:'一级1',whether:false,children:[{label:'二级2',whet......
  • 105.construct-binary-tree-from-preorder-and-inorder-traversal 从前序与中序遍历序
    原理参照从中序与后序遍历序列构造二叉树,这里直接给出基于vector索引优化之后的版本:classSolution{private:TreeNode*get_root(vector<int>&preorder,intpr......
  • 106.construct-binary-tree-inorder-and-postorder-traversal 从中序与后序遍历序列构
    大致思路,首先找到后序遍历序列的最后一个数,二叉树的根节点(root)就是这个值,然后在中序遍历序列里找到这个数所在的位置(假设索引为i),i左边的数,是根节点左子树的数值,i右边的......
  • 树链剖分,树剖
    树剖是把一棵树拆成一堆链,\(O(logn)\)地跳链,用一些数据结构维护每条链,从而实现增加1k代码而降低复杂度到\(O(log^2n)\)的效果。树链剖分大概分三种:长链剖分,实链剖分和重链......
  • HDU5593 ZYB's Tree
    求\(n\)个点的树上对于每个点距离小于\(k\)的点的数量(边权均为\(1\))。\(n\leq5\times10^5,k\leq10\)。设\(f[u][i]\)表示距离\(u\)点\(i\)距离以内并且......
  • CF1491H Yuezheng Ling and Dynamic Tree
    传送门这真是一道分块神题!思路我们先将点编号进行分块令\(b[i]\)表示\(i\)的祖先中,最近的不与\(i\)同一个块的结点编号显然,如果\(pos[a[i]]<pos[i]\),那么\(b......