虚树学习小结
来源:互联网 发布:科学网 博弈 复杂网络 编辑:程序博客网 时间:2024/06/05 11:59
其实虚树这东西…不知道说什么好…简单易学呃
虚树主要处理一种询问总点数不超过O(n),且每次询问的那些点,在预处理之后,所求的值,只和他们,以及他们两两的LCA有关
这里有个显然的结论,即m个点两两的LCA不超过m-1个,将这m个点按dfs序排序之后相邻两点的m-1个LCA就是这m个点两两的LCA
建立虚树的过程,实际上是把那些在树上但是与询问无关的点剔除,只剩下会对答案产生贡献的点,接着挺多题就是在虚树上DP了,因为询问总点数不超过O(n),每次建立虚树用到的点不超过每次询问点数的2倍,所以除去排序,LCA的复杂度,虚树的时空复杂度都是O(n)的
具体实现的话,先把虚树要用到的点找出来,然后设个根(根出不出现在询问里都行)放在队头,接着按照dfs序插入队列,如果队尾不是当前点的祖先就pop掉队尾,否则队尾的点向当前点连边,判是否是祖先可以用括号序列。
细节方面的话,数组、边目录的清空要注意一下,然后虚树中有些点不是询问的点,所以要弄个数组记录这个点是不是当前询问的点
虚树的题…编码复杂度不高,细节好像也没什么,就是代码有点长(还是我自己的问题?)
阅读全文
0 0
- 虚树学习小结
- 伸展树学习小结
- 线段树学习小结
- 伸展树学习小结
- 主席树学习小结
- Treap树学习小结
- 回文树学习小结
- 线段树学习小结
- 字典树学习小结
- 线段树入门学习小结
- [学习小结]Ajax小结
- 面试小结 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 学习小结
- 使用echarts实现动态显示折线图
- NOIP2013华容道 大爆搜
- Android N DisplayManager服务解析(二)
- 【HDU1068】Girls and Boys(最大独立集数,匈牙利算法)
- ActiveMQ整合Spring
- 虚树学习小结
- windows安装sbt以及eclipse 安装scala插件
- strongloop loopback 禁用指定API
- ros_indigo的catkin
- MD5加密
- SpringMVC起步--Hello SpringMVC
- python变量和数据类型
- HDU
- list基本用法