
算法基础----DFS
文章平均质量分 84
-sky-
这个作者很懒,什么都没留下…
展开
-
逃离迷宫 HDU - 1728 深度优先搜索
传送门 解题思路:既然找转向次数最少,没有限制移动几步,只要能到达终点即可,因此选择深度优先搜索,并且剪枝, 只要转向次数超过了k那就不再继续,这样只要到达终点就是答案。 但是还有个问题就是,每个方向走的时候怎么知道需不需要转向次数加一, 只需要加一个标记即可, 标记记录当前的方向, 如果下次走的方向跟现在相同就不加, 不同就加一。 表达式(nod.turn != i) 返回值为逻辑原创 2017-12-10 21:34:24 · 221 阅读 · 0 评论 -
A Knight's Journey POJ - 2488 回溯
传送门 题目大意:有一个p行q列的棋盘, 一个马(走日字)要想把所有的格子跳一遍,可以任意起点,任意终点, 每个格子走一次, 求出可行路径, 如果有多个求出字典序最小的。其中列坐标使用A~Z的大写字母, 行坐标用1 ~10数字表示。 解题思路:既然要把所有的格子走一遍, 那么必然经过A1. 因此直接从A1走即可。 只要第一个不是A1 那么一定不是字典序最小的。马可以走八个方向,为了保证原创 2018-02-04 11:46:24 · 164 阅读 · 0 评论 -
Sudoku Killer HDU - 1426 深搜 状态压缩优化
传送门题目描述:数独游戏, 9*9的棋盘上, 同一行1-9不能出现重复的, 同一列也是, 然后整个棋盘分成九份, 每个3*3的格子内也不能出现重复的.题目分析: DFS深搜即可, 然后可以用二进制进行状态压缩节省时间. 有人说直接暴力也可以过.还有第二个优化的地方, 不用每次都遍历找空的格子.直接保存每个空的格子的位置, 然后回溯即可.说一下怎么压缩吧一行九个数, 可以压缩成一个整数, 第几位是1...原创 2018-04-29 16:15:00 · 193 阅读 · 0 评论