DFS序总结
来源:互联网 发布:电商erp系统源码 编辑:程序博客网 时间:2024/05/21 17:41
DFS序是一个很棒的算法(反正博主这么认为)。
【介绍】
DFS序就是根据DFS遍历树的先后顺序来做的,DFS序可以将树转化为区间,本来对于树的询问或修改,就变成了对于区间的询问或修改,这样对于某些题目就可以用数据结构维护,从而降低时间复杂度了。
【实现】
对于每个节点x将进入这个节点的时间戳记为in[x],离开节点的时间戳记为out[x],所以以x为根的子树的区间就是[in[x],out[x]],一次dfs遍历就可以获取这些信息了。
对于一颗树,如下图:
其实图上的只是一种可行的方案,因为不同写法dfs遍历节点的时间戳不同。
【核心代码】
void Dfs(int x,int fa){ in[x]=++Time; for (int j=lnk[x]; j; j=nxt[j]) if (son[j]!=fa) Dfs(son[j],x); out[x]=Time;}
其实很好理解。
【例题】
HDU5692 POJ3321
阅读全文
1 0
- DFS序总结
- dfs序基本类型总结
- dfs总结
- DFS 总结
- dfs总结
- dfs总结
- DFS总结
- 7.29 DFS总结
- DFS,BFS算法总结
- dfs学习总结
- BFS与DFS总结
- 总结之bfs,dfs
- dfs简单总结
- Dijkstra+DFS模板总结
- DFS学习归纳总结
- DFS BFS 搜索总结
- DFS-lintcode解法总结
- DFS个人总结
- IE 下js里面new Date("2017-07-11 08:00:00") 出现NAN的问题以及解决方法
- 关于UGUI自动设置锚点到控件四个角的问题
- bzoj 4530: [Bjoi2014]大融合 lct维护子树信息
- 【BZOJ】1131 [POI2008]Sta 递推
- jvm之优秀博文
- DFS序总结
- Xamarin XAML语言教程ContentView视图作为自定义视图的父类
- python 之 matplotlib 作图
- Leetcode Binary Tree Preorder Traversal
- MATLAB中常见目录操作
- 设计模式的六大原则
- HDOJ 1257 最少拦截系统(最长递增子序列)
- jquery修改css中带有!important的样式属性
- Java中switch语句真正执行顺序及default位置对结果的影响