树链剖分
hqwhqwhq
有梦想就不累
展开
-
POJ 3237 树链剖分学习(&&树链剖分小结)
一个地方wa了3发,找了一组数组发现的错误,太蠢,就是两个人数作交换写成了 a=b ,b=a。最近智商真是感人。这道题是由spoj375这题改编的,多了一个取反的操作,这个操作只需要多维护一个最小值就行了。然后就是简单的树链剖分+线段树的区间操作。没什么好说的,直接上代码(过几天把LCT学习了,可能回头再来补这题)。 #include #include #include #include原创 2015-09-02 23:24:08 · 370 阅读 · 0 评论 -
HDU 3966 树链剖分学习
这道题不难,看出是树链剖分就很简单,其实奇异也很明显就是一个树链剖分,不过这次不是把树链扔到线段树上,是把节点扔到线段树上。这个时候注意一下w[1] = 1就行了,其他就是线段树的一个区间覆盖的问题了。 #include #include #include #include #include #include #define LL long long #define FOR(i,x,原创 2015-09-03 23:06:53 · 251 阅读 · 0 评论 -
SPOJ 375 树链剖分学习
学习树链剖分的第一题,第二个dfs忘记递归了(太蠢),re了两发,改过来以后就1A了。 学习树链剖分可以参考这篇博客:http://blog.sina.com.cn/s/blog_7a1746820100wp67.html 个人感觉写得非常好!!! 树链剖分听起来很吊,其实就是把数边扔到线段树上,然后搞出一点事情来。主要就是一个重儿子,重链,从而使复杂度降到了(logn)。这个非常关键。关于初原创 2015-09-01 23:07:56 · 349 阅读 · 0 评论 -
ZJOI2008 树的统计 树链剖分学习
水题,这次都没有给我傻逼的机会了,1A过了。直接上代码了 #include #include #include #include #include #define LL long long #define INF 0x3fffffff #define FOR(i,x,y) for(int i = x;i < y;i ++) #define IFOR(i,x,y) for(int i原创 2015-09-04 22:59:31 · 366 阅读 · 0 评论 -
HDU 5458 2015沈阳站网赛1009 (边的双连通+树链剖分+线段树)
题意:给你n个点,m条边,两种操作: 1 u v 把u v之间的边删掉一个 2 u v 如果删除一条边就能使u,v不连通,那么找出所有满足这个条件的这些边的个数。注意:每一个时刻都保证图是一个连通图,可能有重边,可能有自环(u-u这种边) 删边这种东西太难处理,所以我们离线做,找出终图,然后加边,加边这种东西用并查集就可以维护,关键我们怎么求操作2? 1:很明显,我们要把所有的边的双连通分量缩成一原创 2015-09-22 18:24:49 · 772 阅读 · 0 评论