
线段树
MashiroSky
这个作者很懒,什么都没留下…
展开
-
【poj3237】 Tree
[http://poj.org/problem?id=3237] (题目链接)树链剖分处女题(当然也是模板题),然而这150+行的程序我调了一天,历经艰辛,终于ac。。题意:给出一个n个节点的带权树,要求维护操作:1.求出树上两点之间的边权的最大值;2.更改一条边上的权值;3.将树上两点之间的所有边权取各自的相反数。solution 神奇的树链剖分+线段树维护查询和修改操作。 树链剖分时,我们将原创 2016-07-14 21:59:47 · 464 阅读 · 0 评论 -
【bzoj1036】 ZJOI2008—树的统计Count
http://www.lydsy.com/JudgeOnline/problem.php?id=1036 (题目链接)题意:动态维护树上两点间最大权值和权值和。Solution 裸树链剖分。 这一篇题解并不是本博客的重点。我在找本题的数据生成器的时候发现了一篇神奇的博客。关于如何制造出一棵树的数据,似乎用到了purfer。数据生成器:#include<cstdio> #inclu原创 2016-08-06 19:46:03 · 440 阅读 · 0 评论 -
【uoj222】 NOI2016—区间
http://uoj.ac/problem/222 (题目链接)题意:有n个区间,当有m个区间有公共部分时,求m个区间长度的最大值与最小值之差的最小值。Solution 线段树+滑动窗口。这道题很好做,可是在考场上就差一点点,我愣是没想出来。 先将区间按长度排序,保证它们的长度是递增的,这样就可以滑动窗口了。将区间的端点离散化后,用线段树维护每个节点被覆盖的次数,记录当前区间被覆盖次数最原创 2016-08-07 15:28:08 · 509 阅读 · 0 评论 -
【uoj128】 NOI2015—软件包管理器
http://uoj.ac/problem/128 (题目链接)题意:给出一棵树,每个节点代表一个软件包,维护卸载和安装操作。若要卸载节点x,那么必须卸载它的子树上的所有软件包;若要安装节点x必须安装所有它的祖先。每次询问安装或卸载某个软件包一共需要安装或者卸载多少个软件包。Solution 很裸的树链剖分,0表示未安装,1表示已安装。安装操作很好处理对吧,每次对节点x到根节点这条路劲进行查询原创 2016-09-25 21:54:29 · 655 阅读 · 0 评论