这几天主要研究的树链剖分的运作原理,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结构来维护每一条链。定义size(x)为以x为根的子树节点个数,令v为u的儿子中size值最大的节点,那么(u,v)就是重边,其余边为轻边。可以用两次dfs来进行剖分,第一次dfs记录下所有的重边。然后第二次dfs就是连接重边形成重链,以根节点为起点,沿着重边向下拓展,拉成重链,不在当前重链上的节点,都以该节点为起点向下重新拉一条重链。修改u到v的边权的值,有两种情况如果u与v在同一条重链上,那么就直接修改了,如果u与v不在同一条重链上,那么就一边进行修改,一边将u与v往同一条重链上靠。