树链剖分&&dfs序
humeay
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #329 (Div. 2) 593D. Happy Tree Party(树链剖分)
题意:给你一棵树,每条边上有权值。有两个操作 1. u v p 从u~v的路径上用p除每跳边的权值,向下取整 2. u p 将第u条边的权值改为p 思路:树链剖分 呃…算是模板题吧 因为这道题学了十几个小时的树链剖分 照着卿神的blog理解的Orz 这里写链接内容#include<stdio.h> #include<string.h> #include<iostream> #includ原创 2016-01-27 13:58:09 · 410 阅读 · 0 评论 -
BZOJ 2243 [SDOI2011]染色 树链剖分+LCA+区间合并线段树
题意: 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。 思路: 这道题敲了很久…..(好恶心…. 但是AC了真的很exciting 就是要考虑到区间合并,两条链进行原创 2016-05-15 21:37:03 · 371 阅读 · 0 评论 -
bzoj3531 [Sdoi2014]旅行 树链剖分+动态开线段树
题目: S国有N个城市,编号从1到N。城市间用N-1条双向道路连接,满足 从一个城市出发可以到达其它所有城市。每个城市信仰不同的宗教,如飞天面条神教、隐形独角兽教、绝地教都是常见的信仰。为了方便,我们用不同的正整数代表各种宗教, S国的居民常常旅行。旅行时他们总会走最短路,并且为了避免麻烦,只在信仰和他们相同的城市留宿。当然旅程的终点也是信仰与他相同的城市。S国政府为每个城市标定了不同的旅行原创 2016-05-16 20:31:22 · 439 阅读 · 0 评论 -
POJ 3237 Tree 树链剖分(路径剖分
题意:有n-1条路,形成一棵树,每条路有一个权值,有三种操作 1.CHANGE i v 把第i条路权值改为v 2.NEGATE a b把路径a~b的权值全部取反 3.QUERY a b 查询路径a~b的权值的最大值#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h原创 2016-05-16 23:28:43 · 426 阅读 · 0 评论 -
HDU3966(树链剖分) 模板题
呃…学习的话有个链接http://blog.sina.com.cn/s/blog_7a1746820100wp67.html (对没错,我就是来贴代码的…因为CF有道题要用熟练剖分所以 学习了一下#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h> #include<原创 2016-01-27 00:56:46 · 387 阅读 · 0 评论 -
HDU 5293 Tree chain problem dfs序+树形dp
题意: 在树上给出一些链,链上有权值 求一个最大的链集合的权值和,集合内的链不相交 思路: 把每条链的状态放到lca(u,v)上,然后进行树形dp dp[u]有两种状态 1.不取链 dp[u]=∑dp[Son[u]] 2.取一个lca(x,y)==u的链加上 因为要取这条链,所以我们应该减掉子树上取了相交的链多加的值 因为点有点多,而且对于链操作 很容易想到dfs序或者树剖(原创 2016-09-13 16:30:02 · 316 阅读 · 0 评论