posts - 2, comments - 1, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
对于修改操作,不一定需要使用LCA
直接贴别人的话:
http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html
修改操作:例如将u到v的路径上每条边的权值都加上某值x。
一般人需要先求LCA,然后慢慢修改u、v到公共祖先的边。而高手就不需要了。
记f1 = top[u],f2 = top[v]。
当f1 <> f2时:不妨设dep[f1] >= dep[f2],那么就更新u到f1的父边的权值(logn),并使u = fa[f1]。
当f1 = f2时:u与v在同一条重链上,若u与v不是同一点,就更新u到v路径上的边的权值(logn),否则修改完成;
重复上述过程,直到修改完成

比使用LCA快
re: 强大的bcb 杨杨 2010-02-27 20:04
工具. 我之前也困扰了许久.. 后来结连用了WX. 和QT.. 感觉还不错.