CF1000G】的更多相关文章

蜜汁树形dp... 首先分析一下:他要求一条边至多只能经过两次,那么很容易会发现:从x到y这一条路径上的所有边都只会被经过一次.(如果过去再回来那么还要过去,这样就三次了,显然不合法) 那么其他能产生贡献的部分就只有一下几个部分:x,y的子树内部,LCA(x,y)的上半部分的树以及x-y路径上的点向外延伸所形成的部分 这三部分互相独立又互相关联,所以我们设计三个dp对他们进行转移 记dp1[x]代表x的子树内所形成的的贡献,dp3[x]表示x以上的树所形成的贡献(包括x的兄弟节点) 这样就设计出…
题目大意:给你一棵树,其中点上和边上都有值.定义2-Path为经过一条边最多两次的路径,价值为经过点的权值加和-经过边权值*该边经过次数.4e5组询问,每次询问树上连接x,y两点的2-Path的最大价值. 先说一句: 机房中认为图画的最好:https://blog.csdn.net/lleozhang/article/details/83659914 题解: 一道状态比较多的树形dp. dp1:记录x点子树内从x到x的最大2-Path的价值-x的值. dp2:记录从fa[x]到fa[x]不经过x…
题目大意:给你一棵树,点有点权$a_{i}$,边有边权$w_{e}$,定义一种路径称为$2-path$,每条边最多经过2次且该路径的权值为$\sum _{x} a_{x}\;-\;\sum_{e}w_{e}\cdot k_{e}$,$k_{e}$为边的经过次数,一共$Q$次询问,每次查询经过$x,y$的$2-path$权值最大的路径的权值 看题解之前感觉不可做...有点思路但感觉不靠谱,都被我否掉了 LiGuanlin神犇提供了一种树形DP的解法 定义$f[x][0]$表示该子树内,经过$x$点…