辉煌北大的月赛题质量真高啊,这种树状数组真难想到。
树状数组的基本用法是区间,单点的应用,起初这个怎么都想不到如何套用到树状数组。
转化方法是 将树上的节点信息查询,转为深度优先中节点顺序(代表结点编号)。进结点与出结点分别代表该结点管辖范围。
题目大意级是说,给你一颗树,最初每个节点上都有一个苹果,有两种操作:修改(即修改某一个节点,修改时这一个节点苹果从有到无,或从无到有)和查询...
分类:
移动开发 时间:
2014-10-30 22:36:50
阅读次数:
231
后缀数组由 Manber & Myers 在 1990 年首先提出《Suffix arrays: a new method for on-line string searches》,用以替代后缀树,并且改进了存储空间的需求。后缀数组可以通过对后缀树做深度优先遍历(DFT: Depth First T...
分类:
编程语言 时间:
2014-10-30 18:46:00
阅读次数:
311
> 基础1. 广度遍历优先是从给定的root节点开始,逐层次的向下访问各个节点;2. 实现的方式是通过队列的先进先出,将从root节点开始的左孩子和右孩子压入到队列中,并顺序取出;3. 由于是用队列实现,因此不存在用递归实现的方式。下面是基本的广度遍历优先算法: 1 def breadthFirst...
分类:
其他好文 时间:
2014-10-28 23:51:03
阅读次数:
402
上面我们谈了在搜索引擎中,如何建立索引,这里,我们讲如何自动下载互联网上所有的网页,重点就是图论中的遍历算法。 1.图论和网络爬虫 遍历算法主要有两种,一种是深度优先遍历,一种是广度优先遍历。所谓深度优先遍历,就是从一个节点开始,一直沿着一条路走到底,直到没路了,再回过头去找别的路,再一路走...
分类:
其他好文 时间:
2014-10-27 22:54:08
阅读次数:
253
严蔚敏那本教材上的说法:一个深度为k,节点个数为 2^k - 1 的二叉树为满二叉树。这个概念非常好理解,就是一棵树,深度为k,而且没有空位。首先对满二叉树依照广度优先遍历(从左到右)的顺序进行编号。一颗深度为k二叉树,有n个节点,然后,也对这棵树进行编号,假设全部的编号都和满二叉树相应,那么这棵树...
分类:
其他好文 时间:
2014-10-27 12:14:39
阅读次数:
250
作者:张昌昌
为了获取一个压缩包中的文件,而该压缩包里可能又含有压缩包 、文件夹、文件夹里又包含压缩包、文件等各种嵌套的情况,采用广度优先遍历和深度优先遍历的方法解决了此问题。
public static List getFilesOfZipAndRar(String zipPath) throws IOException
{
String dest...
分类:
编程语言 时间:
2014-10-25 18:48:36
阅读次数:
438
题目链接:http://poj.org/problem?id=1664思路:数据较小,考虑深度优先搜索搜索解空间。代码:#include using namespace std;int M, N, Count = 0;void dfs( int deep, int x, int put ){ ...
分类:
移动开发 时间:
2014-10-24 22:04:33
阅读次数:
204
题意: 给定两个素数(四位数),求第一个数经过几次转换能够得到第二个素数。转换方式:是变换数中某一位的数字(第一位不能为零,其他的变换数字是0~~9),变换之后的数也为素数。
思路:bfs,搜索求最短路径,很容易就想到广度优先搜索;因为广度优先搜索,第一次搜到得到的步数就是最少的步数。另外打素数表提高判断的时候的效率。...
分类:
其他好文 时间:
2014-10-21 21:43:38
阅读次数:
286
文件搜索功能要用到findfirst和findnext函数,以及tsearchrec结果,采用深度优先算法,先搜索目录下的文件,然后搜索目录下的子目录递归调用,代码如下procedure TSearchThread.findfiles(apath: string); {通过递归调用,可以在当前目录....
分类:
编程语言 时间:
2014-10-21 00:53:17
阅读次数:
273