摘要: 网上特别讲DFS序的东西好像很少太简单了? 实用性不大?看了论文中 7个经典问题, 觉得挺有用的原文"所谓DFS序, 就是DFS整棵树依次访问到的结点组成的序列""DFS序有一个很强的性质: 一颗子树的所有节点在DFS序内是连续的一段, 利用这个性质我们可以解决很多问题"基本代码 :void Dfs... 阅读全文
posted @ 2015-10-21 17:14 Quinte 阅读(839) 评论(0) 推荐(0) 编辑
摘要: 题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=2586题意 :给一颗树和每条边的边权, 查询树上两点路径上的边权之和思路 :十分裸, 先将查询转化查询节点x到节点y的路径上的边权和, 等于 x到它们最近公共祖先的边权和 + y到他们公共祖先的边权和... 阅读全文
posted @ 2015-10-21 16:17 Quinte 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 基本思路是树状数组, 但是有重复的数, 要保证在一个区间内只更新过一次所做的处理是用先遍历记录数字的数组a, 用数-位置数组 mp[a[i]] 来记录每个数第一次出现的位置并该点更新这个操作对应的代码1 for(int i = 1; i <= n; i++) {2 if(mp[a[i]] =... 阅读全文
posted @ 2015-10-21 16:01 Quinte 阅读(473) 评论(0) 推荐(0) 编辑
摘要: LCA -Least Common Ancestors 一颗树上两个节点的最近公共祖先求解这个问题, 有这样一种方法在两点的路径上找深度最小的点先第一遍DFS一颗树, 得到一个按节点访问顺序记录的序列seq[NODE_NUMBER]void Dfs(int u, int fa, int dep){ ... 阅读全文
posted @ 2015-10-21 15:53 Quinte 阅读(128) 评论(0) 推荐(0) 编辑