摘要:
题目链接 http://poj.org/problem?id=2253 题意 给出青蛙A,B和若干石头的坐标,现在青蛙A要跳到青蛙B所在的石头上,求出所有路径中最远那一跳的最小值。 思路 Floyd算法的变形,将求两点之间的最短路改成求两点之间最大边权的最小值即可。 代码 注意点 1、由于距离是do 阅读全文
摘要:
一、定义 哈夫曼树,又称最优树,是一类带权路径长度最短的树。首先有几个概念需要清楚: 1、路径和路径长度 从树中一个结点到另一个结点之间的分支构成两个结点的路径,路径上的分支数目叫做路径长度。树的路径长度是从树根到每一个结点的路径长度之和。 2、带权路径长度 结点的带权路径长度为从该结点到树根之间的 阅读全文
摘要:
一、定义 二叉堆是堆的一种,使用完全二叉树来实现。所谓完全二叉树,即高度为n的二叉树,其前n-1层必须被填满,第n层也要从左到右顺序填满。在二叉堆中,所有非终端结点的值均不大于(或不小于)其左右孩子的值。若非终端结点的值均不大于其左右孩子结点的值,这样的二叉堆叫做小根堆(下图中(b)),小根堆根结点 阅读全文
摘要:
一、定义 平衡二叉树,又称AVL树,它是一种特殊的二叉排序树。AVL树或者是一棵空树,或者是具有以下性质的二叉树: (1)左子树和右子树都是平衡二叉树; (2)左子树和右子树的深度(高度)之差的绝对值不超过1。 二、AVL树的C++实现 1、结点的定义 2、AVL树的操作 AVL树同二叉排序树一样, 阅读全文
摘要:
一、定义 二叉排序树,又叫二叉查找树,它或者是一棵空树;或者是具有以下性质的二叉树:1. 若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值;2. 若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值;3. 它的左右子树也分别为二叉排序树。 如下图所示: 二、二叉排序树的C++实现 阅读全文
摘要:
题目链接 "http://poj.org/problem?id=1970" 思路 题目的意思是判断五子棋棋局是否有胜者,有的话输出胜者的棋子类型,并且输出五个棋子中最左上的棋子坐标;没有胜者输出0. 这道题目是floodfill延伸而来,使用dfs求解,但这道题比普通的floodfill题目又多了一 阅读全文
摘要:
题目链接 "http://poj.org/problem?id=1979" 思路 floodfill问题,使用dfs解决 代码 java include include include using namespace std; const int N = 20; char maze[N][N]; i 阅读全文