题解 [CF916E] Jamie and Tree】的更多相关文章

题面 解析 这题考试时刚了四个小时. 结果还是爆零了 主要就是因为\(lca\)找伪了. 我们先考虑没有操作1,那就是裸的线段树. 在换了根以后,主要就是\(lca\)不好找(分类讨论伪了). 我们将一开始以\(1\)为根的图作为原图. 仔细思考一下, 我们会发现只有当原图上的\(lca\)在\(1\)和当前的根的路径上时,\(lca\)才会发生变化. 考试时怎么没发现 而当\(lca\)变化后,我们画一下图, 就会发现, 现在的\(lca\)就是两个点与根的\(lca\)中深度较大的一个. (…
CF916E Jamie and Tree 题意翻译 有一棵n个节点的有根树,标号为1-n,你需要维护以下三种操作 1.给定一个点v,将整颗树的根变为v 2.给定两个点u, v,将lca(u, v)所在的子树都加上x 3.给定一个点v,你需要回答以v所在的子树的权值和 Translated by mangoyang 错误日志: 第一次 \(debug\) 是 \(jump\) 数组第二维开小了: 交了一次错了, 第二次没有特判修改/查询节点等于根的情况: 第三次 \(RE\) 又是数组开销了 .…
CF916E Jamie and Tree 题意翻译 有一棵\(n\)个节点的有根树,标号为\(1-n\),你需要维护一下三种操作 1.给定一个点\(v\),将整颗树的根变为\(v\) 2.给定两个点\(u, v\),将\(lca(u, v)\)所在的子树都加上\(x\) 3.给定一个点\(v\),你需要回答以\(v\)所在的子树的权值和 输入输出格式 输入格式: The first line of input contains two space-separated integers \(n\…
好吧这其实应该不是树剖... 因为只要求子树就够了,dfs就好了 大概就是记录一个全局根root 多画几幅图会发现修改时x,y以root为根时的lca为以1为根时的lca(x,y),lca(root,x),lca(root,y)中深度最大的一个 然后就可以做了 然后分类讨论当前更改操作节点x(更新即LCA(x,y),询问则就是x)和root的关系: (接下来有关操作都以1为根) 1.x=root: 即询问/修改整颗树的权值和 2.root不在x的子树内:这样的话这里x的子树是没有被影响到的,直接…
E. Jamie and Tree time limit per test 2.5 seconds memory limit per test 256 megabytes input standard input output standard output To your surprise, Jamie is the final boss! Ehehehe. Jamie has given you a tree with n vertices, numbered from 1 to n. In…
题目链接  Jamie and Tree 题意  给定一棵树,现在有下列操作: $1$.把当前的根换成$v$:$2$.找到最小的同时包含$u$和$v$的子树,然后把这棵子树里面的所有点的值加$x$: $3$.查询以$v$为根的子树的点权之和. 这道题其他都是常规操作,就是当前根结点为$cnt$的时候求$x$和$y$的$LCA$(操作$2$要用到) 我们假定解题的时候根一直不变(我一般都设$1$为根结点) 答案为$LCA(x,y)$ $xor$ $LCA(x, cnt)$ $xor$ $LCA(y…
题解:CF593D Happy Tree Party Description Bogdan has a birthday today and mom gave him a tree consisting of \(n\) vertecies. For every edge of the tree \(i\) , some number \(x_i\) was written on it. In case you forget, a tree is a connected non-directed…
To your surprise, Jamie is the final boss! Ehehehe. Jamie has given you a tree with n vertices, numbered from 1 to n. Initially, the root of the tree is the vertex with number 1. Also, each vertex has a value on it. Jamie also gives you three types o…
题面 CF429C Guess the Tree 给一个长度为 \(n\) 的数组 \(a_i\),问是否有一棵树,每个节点要么是叶子要么至少有两个儿子,而且 \(i\) 号点的子树大小是 \(a_i\). 数据范围:\(1\le n\le 24\). 题解 发现 \(n\) 很小,想到可以状压. 设叶子节点有 \(ln\) 个,所以中间节点有 \(mn=n-ln\) 个. 由于"每个节点要么是叶子要么至少有两个儿子",所以 \(ln\ge\lceil\frac n2\rceil\),…
Problem \(\mathrm{Code~Festival~2017~Final~J}\) 题意概要:一棵 \(n\) 个节点有点权边权的树.构建一张完全图,对于任意一对点 \((x,y)\),连一条长度为 \(w[x] + w[y]+ dis(x, y)\) 的边.求这张图的最小生成树. \(n\leq 2\times 10^5\) Solution 在操场上晒太阳时想到的做法,求 \(\mathrm{MST}\) 可以使用另一种贪心算法:每次找到每个点连出去的最短的边,并将其合并,一次是…