深度搜索DFS
FlyingPiggy-MissW
我是算法姐姐哈哈哈哈
展开
-
hdoj_1010 Temper of The Bone
题目链接:杭电OJ-1010这是一道经典搜索题,常规方法是深搜,当然要加上必要的剪枝条件。主要的剪枝条件有:1、奇偶性剪枝(学习链接)2、越界3、超时4、剩余可走区域小于时间在写递归搜索时普遍的做法是先写出退出条件然后在写自身递归#include#include#includeusing namespace std;char M原创 2015-03-26 23:25:51 · 469 阅读 · 0 评论 -
zoj_2165 Red and Black
题目链接:zoj 2165分析:专门搜了一道入门级DFS题来做,因为不需要回溯,而且表示图的二维数的元素本就代表可走或不可走,所以直接把访问过的节点标志为不可走,不需要额外的数组。其次是掌握一个改变方向的办法,先声明一个方向数组,分别代表上下左右,需要改变方向的时候,直接用点的坐标加数组的元素即可。还有就是注意细节!千万别再把关系符号写成赋值符号了,例如把“==”写成了“=”,猪!原创 2015-03-29 22:58:44 · 447 阅读 · 0 评论 -
zoj_2412 Farm Irrigation
题目链接:zoj 2412题目翻译:有11种正方形,每种正方形里面对应一种形状的水管,不同的的正方形用A到K表示,给一个由不同正方形聚成的矩阵,问至少需要多少个水源可以使矩形中所有的地方都可以被灌溉,如果两个相邻的正方形的水管正好对口,那么这两个正方形可以共用一个水源。分析:又是一道基础的深搜题,逐渐找到点门路啦。第一步:声明四个二维数组,第一个用于存放输入的正方形矩阵原创 2015-03-30 16:51:44 · 511 阅读 · 0 评论 -
hdoj_1241 Oil Deposits
题目链接:hdoj 1241题目翻译:在一个矩阵里,有些格子是油田,有些不是,相邻(上、下、左、右、左上、右上、左下、右下)的格子如果也是油田,那么他们属于同一块油田,问总共有多少个油田。该题类似于zoj_2412农场水管问题,不同之处是,对角线相邻的格子也算作一块油田,这样就要在方向数组中增加四行,分别是:{1,1},{-1,1},{1,-1},{-1,-1},代表右下、左下原创 2015-03-31 22:59:37 · 454 阅读 · 0 评论 -
poj_1011 Sticks
题目链接:poj 1011题目翻译:有一些长度相同的木棒,木棒原长度未知,被随机切成一些小块,每块不超过50个单位长度。现在已知小块的个数和每个小块的长度,想拼成原来的样子,并且希望拼成的木棒最短。减枝技巧:1.最长的木棍的长度一定不会超过以前的木棍长度,所以从最长的长度开始枚举2.如果总长度不能被选中的长度整除剪掉3.如果所求木棍数等于总长度除以所枚举的木转载 2015-04-01 10:59:17 · 380 阅读 · 0 评论