[xsy1294]sub】的更多相关文章

题目描述 给你一棵\(n\)个点的无根树,节点\(i\)有权值\(v_i\).现在有\(m\)次操作,操作有如下两种: \(1~x~y\):把\(v_x\)改成\(y\). \(2\):选择一个连通块(也可以不选择),使得点权和最大.输出这个点权和. \(n,m\leq {10}^5,|v_i|,|y|\leq 1000\) 题解 考虑暴力,\(dp_x=v_x+\sum_{y\text{是}x\text{的儿子}}\max(dp_y,0)\) 还记得如果是一条链的问题要怎么做吗?没错,就是线段…
给出一棵$N$个节点的无根树,节点$i$有权值$v_i$.现在有$M$次操作,操作有如下两种: $1\ x\ y$ 将节点$x$的权值$v_x$修改为$y$ $2$ 选择一个联通块(也可以不选择),使得点权和最大.输出这个点权和 树剖== 考虑先做一次DP,$f_x$表示在以$x$为根的子树中,选择$x$的情况下的最大联通块和,那么$f_x=v_x+\sum\limits_{u\in son_x}\max(f_u,0)$($v_x$表示点$x$的权值) 然后树剖,每一个点的权值设为$f_x-f_…