出题:要求实现层序遍历二元搜索树,并对比BFS与DFS的区别分析:层序遍历也就是由上至下,从左到右的遍历每一层的节点,类似于BFS的策略,使用Queue可以实现,BFS不能用递归实现(由于每一层都需要存储所有节点,所以非常耗用内存)。这段代码主要用于反映BFS与DFS的联系;解题:
1 class....
分类:
其他好文 时间:
2014-05-27 01:11:41
阅读次数:
398
uva 548 Tree
题目大意:
给定一个二叉树的中序和后序遍历,求二叉树到每个叶节点的路径和最小的那个叶节点的值。
解题思路:
先建树,后dfs,建树也就是后序的最后一个就是二叉树的当前节点的值,再在中序中找到这个值,那么左边就是左子树,右边就是又子树,再从后序中找出相应的左右子树的后序,然后划分为子问题递归求解。...
分类:
其他好文 时间:
2014-05-23 08:10:59
阅读次数:
255
Letter Combinations of a Phone Number
DFS BFS...
分类:
其他好文 时间:
2014-05-22 09:23:16
阅读次数:
267
FZU:http://acm.fzu.edu.cn/problem.php?pid=1920题意:叫你玩扫雷游戏,已经告诉你地雷的位置了,问你最少点几次鼠标左键可以赢这盘扫雷题解:直接DFS,(注意这里是8个方向搜索不是4个方向),然后把0周围的不是雷的格子置0,然后统计不是0也不是雷的格子数量,然...
分类:
其他好文 时间:
2014-05-20 10:15:11
阅读次数:
309
http://acm.hdu.edu.cn/showproblem.php?pid=1385
求最短路,要求输出字典序最小的路径。
spfa:拿一个pre[]记录前驱,不同的是在松弛的时候,要考虑和当前点的dis值相等的情况,解决的办法是dfs找出两条路径中字典序较小的,pre[]去更新。把路径当做字符串处理。
我只用之前的pre去更新当前点,并没考虑到起点到当前点的整个路径...
分类:
其他好文 时间:
2014-05-19 22:49:45
阅读次数:
383
1
HIVE入门操作
1.1
连接环境
登陆成功显示如下:
输入 quit;
可退出hive环境
1.2
查看数据库
show databases;
1.3
创建数据库
create database mng;
1.4
链接数据库
use mng;
成功显示如下:...
分类:
其他好文 时间:
2014-05-18 18:44:37
阅读次数:
311
迷宫规模较大,DFS必然超时。注意到行走方向只有上、下、右三个,意味着已走过的路不能再走,更意味着不用回溯。且问题问的是最大值。一切都清晰地指向了DP!...
分类:
其他好文 时间:
2014-05-18 15:16:29
阅读次数:
328
题目:
链接:点击打开链接
思路:
搜索入门题。
代码:
#include
#include
#include
using namespace std;
int m,n;
char s[110][110];
int vis[110][110];
void dfs(int x,int y)
{
if(s[x][y] == '*' || vis[x][y])
...
分类:
其他好文 时间:
2014-05-18 10:46:12
阅读次数:
277
题目大意:
给出一个数n,求m,使得m的长度和n相等,能被k整除。有多个数符合条件输出与n在每位数字上改变次数最小的。改变次数相同的输出大小最小的。
共有三种解法:DP解法,记忆化搜索和DFS+强剪枝的算法。
后两种以后会更新。
1、DP解法:
解题思路:
DP[i][j]表示数n的前i位除以k余j最小改变几位。
DP[len][0]就表示数n被k整除最小改变几位。
根据这个...
分类:
其他好文 时间:
2014-05-18 06:02:56
阅读次数:
319