树上问题
树上问题
学不会dp QAQ
这个作者很懒,什么都没留下…
展开
-
POJ1741 Tree 【点分治】
题目链接 题意: 给出一棵树,每条边都有一个权值www,求一共有多少个点对的路径权值和小于KKK 题解: 点分治模板题 #include<iostream> #include<sstream> #include<string> #include<queue> #include<map> #include<set> #include<vector> #include<stack> #include <util原创 2021-08-05 21:14:55 · 81 阅读 · 0 评论 -
洛谷P3806 【模板】点分治1 【点分治】
题意: 给出一棵树,每条边都有一个权值www,mmm次询问,每次询问树上是否有一条长度为kkk的路径 题解: 点分治模板题,但是处理起来麻烦 #include<iostream> #include<sstream> #include<string> #include<queue> #include<map> #include<unordered_map> #include<set> #include<vector>原创 2021-08-06 01:01:50 · 74 阅读 · 0 评论 -
洛谷 P3833 [SHOI2012]魔法树 【树链剖分、线段树】
题目链接 题意: 给出一颗以0为根的树,有树上每个节点初始权值为0,两种操作 路径 U->V 上所有节点权值加 W 查询结点U及其子树结点的权值和 题解: 树链剖分的模板题,add(u,v)add(u,v)add(u,v)相当于add(u,lca(u,v))add(u,lca(u,v))add(u,lca(u,v))和add(v,lca(u,v))add(v,lca(u,v))add(v,lca(u,v)),树链剖分后每条链的dfs序的连续的,用线段树来维护,码量较大 #include<io原创 2021-09-07 01:01:06 · 132 阅读 · 0 评论 -
洛谷P3379 最近公共祖先(LCA)【树链剖分】
原理及实现: 为了方便描述,称TxT_xTx为xxx所在树链的顶端节点,DxD_xDx为xxx的深度,DTxD_{T_x}DTx为xxx树链顶端节点的深度 两个节点所在树链只有两种情况: ①:在同一条链(即 Tx=TyT_x=T_yTx=Ty),此时LCA(x,y)LCA(x,y)LCA(x,y)为两者深度更浅的。 ②:不在同一条链(即 Tx!=TyT_x!=T_yTx!=Ty),那就让DTD_{T}DT小的节点跳到所在树链顶端的父节点(因为TTx=TxT_{T_x}=T_xTTx=T原创 2021-08-04 23:31:09 · 132 阅读 · 0 评论