虚树
蜗角虚名羊
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj2286: [Sdoi2011]消耗战(虚树)
题目 题解 Solution 首先把询问点根据原树dfsdfsdfs序排序,显然这些点都要出现在虚树中来,而且为了保证结构不被破坏,另外一些跟他们有关系的点都要加入到虚树中来 我们用一个栈维护原树上的一条链,自栈底到栈顶,深度由小变大 每次考虑插入询问点进栈 如果插入点的祖先是栈顶元素,那么直接插入即可,因为反正是一条链上的结点 如果不是的话,那么只有可能分居他们的lcalcalca的两棵子树中 ...转载 2019-03-11 08:56:18 · 209 阅读 · 0 评论 -
bzoj5329: [Sdoi2018]战略游戏
题目 题解 Solution 问题可转化成求点集之间两两的路径并 Code #include<bits/stdc++.h> using namespace std; const int N=300002,M=100002; struct node{ int to,ne; }e[N<<1],E[M<<2]; int fa[N][20],dep[N],TOT,to...转载 2019-03-11 11:42:18 · 261 阅读 · 0 评论 -
bzoj3572: [Hnoi2014]世界树
题目 题解 构建虚树以后两遍dpdpdp处理出虚树上每个点最近的议事处 然后枚举虚树上每一条边,考虑其对两端点的答案贡献 可以用倍增二分出分界点 如果aaa,bbb的分界点为midmidmid,aaa,bbb路径上aaa的第一个儿子为xxx 则对aaa的贡献是size[x]−size[mid]size[x]-size[mid]size[x]−size[mid] 对bbb的贡献是size[mid]−...转载 2019-03-12 10:21:08 · 230 阅读 · 0 评论
分享