随笔分类 -  树链剖分

摘要:传送门【题目分析】tnnd。。。。。竟然卡树剖?95pts在逗我?试了各种卡常均gg。。。。。所以我先贴95pts树剖,tarjan什么的等我心情好了再补。。。。mmp【代码~(不要吐槽写得丑)】#includeusing namespace std;const in... 阅读全文
posted @ 2018-11-05 22:07 Ishtar~ 阅读(159) 评论(0) 推荐(0)
摘要:传送门【题目分析】维护非常巧妙。。。。看了看网上的做法才知道每个节点可以维护一个堆qwq每次询问相当于求不经过该点路径的最大权值,所以考虑每次加入一条路径的时候,将除这条路径上的所有点更新即可。所以就用堆来维护。。。开两个堆,一个维护压入堆的元素,一个维护出堆的元素,... 阅读全文
posted @ 2018-11-02 21:02 Ishtar~ 阅读(151) 评论(0) 推荐(0)
摘要:传送门【题目分析】蒟蒻并不会树上差分。。。。。所以只能用树链剖分套线段树维护。。。。。对于每条路径,都相当于将所有经过的点+1,最后查询最大值即可。【代码~】#includeusing namespace std;const int MAXN=5e4+10;const... 阅读全文
posted @ 2018-11-02 08:22 Ishtar~ 阅读(211) 评论(0) 推荐(0)
摘要:传送门【题目分析】手残一时爽,代码调一天。。。。。。。。样例都是假的QAQ与旅游这道题类似,都是权值在路径上,所以将权值赋给深度较深的点,注意查询和更新时不能计算lca。这道题相当于支持单点修改、区间覆盖、区间加、区间求最大值,常规操作。【代码~】#includeus... 阅读全文
posted @ 2018-11-01 10:46 Ishtar~ 阅读(155) 评论(0) 推荐(0)
摘要:传送门【题目分析】比较裸的一道树链剖分。。。相当于实现路径加1,单点查询,树链剖分+线段树维护一下即可。【代码~】#includeusing namespace std;const int MAXN=3e5+10;const int MAXM=6e5+10;int n... 阅读全文
posted @ 2018-10-31 08:28 Ishtar~ 阅读(183) 评论(0) 推荐(0)
摘要:传送门【题目分析】树链剖分+一点点小变化。用0表示未安装,1表示已安装。首先根据给出的关系建树,每一次install(x)操作相当于询问1~x这条路径上有多少个为0的点,直接统计为1的点的个数再用深度去减一下即可,然后将这条路径上的所有点变为1;每一次uninstal... 阅读全文
posted @ 2018-10-30 21:56 Ishtar~ 阅读(149) 评论(0) 推荐(0)
摘要:我 服 我 自 己【题目分析】板子题调一天系列。。。。qwq已经被蠢死。路径操作直接上树链剖分,子树操作直接在线段树上区间修改询问(因为x及其子树的dfs序为dfn[x]~dfn[x]+siz[x]-1)然后就是一群人对着这份代码看了半天没挑出错来。。。。【代码~】#... 阅读全文
posted @ 2018-10-29 15:03 Ishtar~ 阅读(110) 评论(0) 推荐(0)
摘要:啊哈~【题目分析】哇这真的是DAY1T2吗。。。。。感觉要被强行劝退了。。。。。qwq首先对于树上的路径s->t,我们都可以将其拆为s->lca(s,t)->t,我们用dona数组作为记录贡献的桶。考虑一个点i能被观察到的情况,分为两种:1.存在一条路径s->lca(... 阅读全文
posted @ 2018-10-24 22:02 Ishtar~ 阅读(426) 评论(0) 推荐(0)
摘要:QAQ【题目分析】一道裸的剖分被一个极度sb的错误卡了两天。。。。。。题意很明显,维护5个操作:单点修改,区间取相反数,区间求和,区间求最大值,区间求最小值。因为求一条路径,考虑树链剖分维护(注意dfs序时优先dfs重儿子!!!这样在线段树上的编号才连续!!!)考虑第... 阅读全文
posted @ 2018-10-23 21:01 Ishtar~ 阅读(161) 评论(0) 推荐(0)
摘要:【题目描述】有n个节点N-1条边,这是一颗树,有2个操作:1 x v:表示将节点x的权值+v2 x y:表示查询x到y的路径权值和【输入格式】第一行是数N,表示N个节点,接下一行是n个数,表示每个节点的初始权值。接下来n-1行,每行描述了n-1条边。接下来是一个数q表... 阅读全文
posted @ 2018-10-07 16:45 Ishtar~ 阅读(133) 评论(0) 推荐(0)
摘要:树上修改1传送门:https://blog.csdn.net/g21glf/article/details/82958565【题目描述】有n个节点N-1条边,这是一颗树,有2个操作:1 x y v:表示将节点x到y最短路径上所有的点的权值+v2 x:表示查询子树x的权... 阅读全文
posted @ 2018-10-07 16:17 Ishtar~ 阅读(147) 评论(0) 推荐(0)
摘要:【题目描述】有n个节点N-1条边,这是一颗树,有2个操作:1 x y v:表示将节点x到y最短路径上所有的点的权值+v2 x:表示查询节点x的权值开始的时候每个节点的权值是0【输入格式】第一行是数N,表示N个节点 接下来n-1行,每行描述了n-1条边。接下来是一个数q... 阅读全文
posted @ 2018-10-07 15:45 Ishtar~ 阅读(155) 评论(0) 推荐(0)