出题:要求实现层序遍历二元搜索树,并对比BFS与DFS的区别分析:层序遍历也就是由上至下,从左到右的遍历每一层的节点,类似于BFS的策略,使用Queue可以实现,BFS不能用递归实现(由于每一层都需要存储所有节点,所以非常耗用内存)。这段代码主要用于反映BFS与DFS的联系;解题:
1 class....
分类:
其他好文 时间:
2014-05-27 01:11:41
阅读次数:
398
题意:推箱子的题目,求最短的路径,如果推的最短一样的话,就算上走的最短
思路:首先我们记录状态:箱子的位置和人的位置,我们先BFS箱子的最短,然后我们可以通过推的方向得到人的位置,然后再BFS人是否能到这里的最短路#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 50;
...
分类:
其他好文 时间:
2014-05-22 10:57:35
阅读次数:
292
Nearest number - 2
Description
Input is the matrix A of N by N non-negative integers....
分类:
其他好文 时间:
2014-05-22 09:38:33
阅读次数:
236
Letter Combinations of a Phone Number
DFS BFS...
分类:
其他好文 时间:
2014-05-22 09:23:16
阅读次数:
267
题意:一张n*m的网格内每个点有话费,还有若干个宝藏,问一个人要走进去拿走所有宝藏在走出来的最小花费。思路:看宝藏只有13个直接想到了状压dp[i][j]拿了哪几个前一个为j的最小花费,先bfs+优先队列预处理出最短路,然后记忆化搜索就可。代码如下:
1 /********************....
分类:
其他好文 时间:
2014-05-19 23:26:38
阅读次数:
352
题目链接:POJ 3083 Children of the Candy
Corn【题意】给出一个迷宫,不超过40*40,‘#’代表墙,‘.’代表能走,‘S’是起点,‘E’是终点。分别求出从起点一直沿左走,一直沿右走,走到终点所需要的步数。以及走出迷宫的最小步数。【思路】首先最小步数很简单,一个普通B...
分类:
其他好文 时间:
2014-05-19 10:03:59
阅读次数:
312
ACMer
必备知识(这么多呀,慢慢学了……
图论
路径问题
0/1
边权最短路径
BFS
非负边权最短路径(Dijkstra)
(可以用 Dijkstra
解决问题的特征)
负边权最短路径
Bellman-Ford
Bellman-Ford
的 Yen...
分类:
其他好文 时间:
2014-05-18 09:00:32
阅读次数:
245
题意:给定一棵二叉树,返回按层遍历的结果
思路1:bfs,定义一个新的struct,记录指针向节点的指针和每个节点所在的层
复杂度1:时间O(n),空间O(n)
思路2:dfs
递归函数:
void levelOrder(TreeNode *root, int level, vector<vector >&result)
表示把根为root的树按层存放在result中,其中level表示当前的层数
复杂度2:时间O(n),空间O(n)
相关题目:...
分类:
其他好文 时间:
2014-05-15 14:46:06
阅读次数:
355
算了下复杂度好像是n^3 就感觉不大好做。结果n^31a。。。
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define eps 1e-9
#define PI acos(-1.0)
#define N 1005
#define inf ...
分类:
Web程序 时间:
2014-05-14 20:11:42
阅读次数:
309