树链剖分
A_loud_name
23333333~~~
展开
-
树的统计Count bzoj 1036 树链剖分+线段树
题目大意给出一棵树,每个节点有一个初始权值。要求资瓷三个操作: CHANGE x y把节点的权值变为y QMAX x y求x到y的路径上的最大值 QSUM x y求x到y的路径上的和分析因为感兴趣,所以学习了树链剖分。 但是发现这是一个巨坑啊!!! 打了大概2个半小时的代码,真真正正的码字题。 原理很简单,可以见这位大牛大博客——传送门ps:模板+1code#include<iostre原创 2017-03-24 21:28:34 · 358 阅读 · 0 评论 -
[SDOI2011]染色 bzoj 2243 树链剖分
题目大意给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。分析打了大概2个半小时的代码,真真正正的码字题。 复习了树链剖分的写法和学习了一下新的知识。 这题主要是线段树原创 2018-01-04 22:04:53 · 262 阅读 · 0 评论 -
【BJOI2014】大融合 jzoj 3766 树链剖分+并查集
题目小强要在N个孤立的星球上建立起一套通信系统。这套通信系统就是连接N个点的一个树。这个树的边是一条一条添加上去的。在某个时刻,一条边的负载就是它所在的当前能够联通的树上路过它的简单路径的数量. 现在,你的任务就是随着边的添加,动态的回答小强对于某些边的负载的询问。分析显然一条边的负载等于将这条边断开后形成的两个子树的节点数的乘积。 在计算一条边的负载的时候,可以将所有与之连通的原创 2018-02-02 20:15:37 · 215 阅读 · 0 评论 -
【NOIP2014模拟8.21】签到题3 jzoj 3797 树链剖分
题目给定一棵有根树(根节点为1),每个点都带有权值,对于点u,其权值设为a[u],其父亲为fa[i]。现有两个函数f1,f2,定义如下: 如果u=1,f1[u]=a[u],f2[u]=1 否则 如果f1[fa[u]]+1分析稍微一分析就可以发现: 对于一个点X,它有一个祖先Y,那么点Y对于点X的f1影响是a[y]+(deep[x]-deep[y]). f1就是求一个点到树根的原创 2018-02-03 15:39:57 · 598 阅读 · 0 评论 -
【NOIP2015模拟11.4】电话线铺设 jzoj 4313 最小生成树+树链剖分
题目分析要把n个点用n-1条边连接起来,还要使总边权和最小,那么很明显是求最小生成树,用克鲁斯卡尔算法可解。但是这题有一个限制条件: 一定要用n-2条王牌电缆+1条李牌电缆组成最小生成树。 那我们就先用n-1条王牌电缆建立最小生成树。 然后枚举所有李牌的边,如果一条李牌边是从x到y费用z,因为要使结果是一颗树,所以要把新生成的环上边权最大的边删去(即在x到y的路径上删去一原创 2018-01-30 16:49:21 · 381 阅读 · 1 评论