
树链剖分
文章平均质量分 80
Excelsior_kereo
这个作者很懒,什么都没留下…
展开
-
hdu 5052 Yaoge’s maximum profit 树链剖分 2014 ACM/ICPC Asia Regional Shanghai Online
题意:给定n个点构成的树,每个点都有点权。下面n行给出每个点点权表示每个点买卖鸡腿的价格下面n-1行给出树边下面Q个操作Q行u, v, val从u走到v,过程中可以买一个鸡腿,然后到后面卖掉,输出max(0, 最大的收益)然后给[u,v]路径上点点权+=x思路:树链剖分,做过bzoj2243后基本上稍微想下就会有思路。线段树中需要维护区间最大值Max,区间最小值原创 2015-01-26 15:08:34 · 1330 阅读 · 3 评论 -
spoj375 Query on a tree 树链剖分
题意:在一棵n个点构成的树上有两个操作。1.修改某条边的边权 2.查询两点之间最大的边权思路:基础的树链剖分。参见的是http://blog.sina.com.cn/s/blog_6974c8b20100zc61.html 看完就明白了。详见代码:/********************************************************* file na原创 2015-01-20 19:05:51 · 700 阅读 · 0 评论 -
fzu2082 过路费 树链剖分
题意:中文题。。思路:树链剖分后,在线段树上单点更新,区间查询。详见代码:/********************************************************* file name: fzu2082.cpp author : kereo create time: 2015年01月21日 星期三 09时21分42秒****************原创 2015-01-21 09:53:19 · 699 阅读 · 0 评论 -
poj3237 Tree 树链剖分
题意:在spoj375基础上增加了一条路径的取反操作,其他都一样。思路:剖分没有变化,在线段树部分,需要一个tag标记该段是否需要需要取反,记录一个最大值、最小值即可。= =(打tag的那段应该已经跟新好,push_down的时候如果tag=1那么直接对两个子段进行更新。。一开始意识模糊了。。)详见代码:/*************************************原创 2015-01-21 11:16:39 · 661 阅读 · 0 评论 -
hdu3966 Aragorn's Story 树链剖分
题意:n个点构成的树,每个点都有一个权值。有三种操作: 1. I a b k 使a到b路径中所有点的点权增加k 2. D a b k 使a到b路径中的所有点的点权减去k 3. Q c 查询点c的权值。思路:树链剖分。剖分后,成段更新,单点查询,详见代码:/*********************************************************原创 2015-01-22 14:31:58 · 815 阅读 · 0 评论 -
poj2763 Housewife Wind 树链剖分
题意:给定树的结点数n,初始起点s,有两个操作,(1) 0 u 查询从当前位置到u的时间,当前位置变为u (2) 1 i w 修改第i条路花的时间为w。思路:树链剖分。剖分完,线段树单点更新,区间查询。详见代码:/********************************************************* file name: poj2763.cpp a原创 2015-01-24 17:51:54 · 1062 阅读 · 0 评论 -
bzoj 2243 染色 树链剖分 好题!
题意:中文题。思路:很好的一道树链剖分。树剖后,线段树要记录左端点l,右端点r,左端点的颜色lc,右端点的颜色rc,区间成段更新的标记tag,区间有多少颜色段。区间合并的时候要注意如果左子树的右端和右子树的左端颜色相同那么数量要减一。但是存在一个问题当前剖到的链与上一次的链在相交的边缘可能颜色相同,如果颜色相同答案需要减一。所以统计答案的时候要记录下上一次剖到的链的左端点的颜色,与原创 2015-01-24 18:24:32 · 3049 阅读 · 0 评论