DFS
文章平均质量分 76
hcx11333
菜鸡一枚,成长ing。。。
展开
-
HDU1072 Nightmare(dfs)
题意:在一个n*m的迷宫,有一个炸弹,倒计时是6分钟,Ignatius 需要逃出去,0代表墙不能走,1代表空地,2代表初始位置,3代表目的地,4代表炸弹重置点,达到这个点后炸弹时间会被重置为6分钟,重置次数不限。每次只能向上、下、左、右移动,移动一格需要一分钟,每一点可以重复到达。求逃生的最短时间,不能则输出-1。还有以下规则:1、当移动到目的地时炸弹时间刚好为0则无法逃生。2、当移动到重原创 2017-02-10 01:02:32 · 277 阅读 · 0 评论 -
HDU1455 Sticks(DFS+剪枝)
题意:George把一些等长的树枝切成了n个长度不超过50的短树枝,现在给你这些短树枝的长度,计算出原来树枝的最小长度。思路:DFS,搜索的时候记录下每个树枝是否被匹配过,搜索的数据包括当前已经匹配的长度、目标长度、已经匹配的树枝数。剪枝很重要:1、这些树枝的原长度一定大于短树枝的最大长度,同时也是小树枝总长度的因子,这个作为初步剪枝。2、把树枝从大到小排序,开始匹配一根新的树原创 2017-01-23 23:34:04 · 1445 阅读 · 12 评论 -
HDU2544最短路(DFS/Dijkstra+heap)
题意:求权值最小的路,题目保证一定有解。思路:经典的最短路问题,floyd、Dijkstra或者DFS都可以。//#include#include#include#include#include#includeusing namespace std;#define INF 0x3f3f3f3ftypedef long long LL;int m,n,ans,g[105原创 2017-01-21 23:26:47 · 350 阅读 · 0 评论 -
HDU 2489 Minimal Ratio Tree(DFS+prim)
题意:在n个结点的完全图中,每条边和每个点都有一个权值。定义:从中选出m个结点组成一个连通图,顺序输出构成最小的ratio时所选取的m个点。思路:边权之和最小,想到prim,同时n最大是15,直接暴力。先dfs出m个顶点,然后求出对应的ratio,找出最小的radio,输出结果就行了。计算了一下15以内组合数的最大值是6000+,此时m为7或8,算上prim的O(n^2),时间是够原创 2017-04-14 01:07:34 · 193 阅读 · 0 评论 -
HDU2782 The Worm Turns(DFS水)
题意:一个n*m的地图中有平地和石头,有石头的格子不能走。从任一点出发后,除非碰到地图边界或者石头或者已经走过的格子,此时可以任意选择一个新的方向。求能够到达格子数最多的走法,输出格子数、起点坐标、初始方向(用E/N/S/W表示)。如果有多组解,输出字典序最小的坐标,如果有多种方向,按 E, N, S, W的顺序输出第一个。思路:4000ms,果断暴搜一发,题目要求多组解按字典序输原创 2017-01-25 00:49:03 · 372 阅读 · 0 评论 -
HDU1078 FatMouse and Cheese(DFS记忆化搜索)
题意:在n*n的地图上,每个格子都有若干奶酪,老鼠从(0,0)出发,每次只能朝一个方向运动1到k次,且到达的下一个格子奶酪一定要比这个多,求最多能吃到的奶酪数。思路:dfs即可,由于还要枚举每一次移动的步数,重复计算很多,因此需要保存之前的结果。记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。一般说来,动态规划总要原创 2017-01-25 00:40:11 · 448 阅读 · 0 评论 -
HDU1312 Red and Black(DFS水)
题意:一个矩形的房间,'@'代表出发点,‘.’代表黑瓷砖,‘#’代表白瓷砖,只能走黑瓷砖,统计能够到达的瓷砖数(包括起点)。思路:裸的DFS,统计‘@’所在的‘.’连通块的数量即可。#include#include#include#include#include#includeusing namespace std;#define INF 0x3f3f3f3原创 2017-01-23 23:51:46 · 217 阅读 · 0 评论 -
HDU5546 Ancient Go(DFS)
题意:在一个9*9的棋盘上,‘x’代表黑棋,‘o’代表白旗,‘.’代表空位置。如果一方下子能让另一方的一片连通的棋子周围没有一个空位置,即用自己的子将对方的子围起来,就能吃掉被围住的子。现在轮到黑子,问这一步能否至少吃掉一个白子。思路:比较明显的搜索,搜索的办法也有几种,搜索空白、白子均可。最初的办法是找到一个空位置变成黑子,然后看周围有没有能被围起来的白子连通块,只要存在一个这样的连原创 2017-01-23 00:09:13 · 310 阅读 · 0 评论 -
HDU1426 Sudoku Killer(DFS 选对搜索对象很重要)
题意:给一个没有完成的数独,输出完整结果。数据保证有且只有一个解。思路:题意明确,思路还是比较好想的,找到每个空的位置,把1到9尝试一遍只要不冲突就填上再往下搜索一直找到解就行了。卡在两个地方:1、题目的格式要求。多组输入,输入数据之间有空行,输出的解之间也要有空行。为了解决数据之间的空格,特意搞了一段特盼,为此还WA了两发,后来想起来scanf是自动忽略回车的!所以不需要处理原创 2017-01-22 23:49:06 · 1185 阅读 · 0 评论 -
POJ3009 Curling 2.0(DFS)
题意:地图上有个冰壶,0代表冰面,1代表有石头,2代表冰壶初始位置,3代表目标位置。求冰壶运动到终点的最短步数,冰壶运动有几个规则:1、冰壶沿一个方向运动就会停不下来,除非碰到石头或者到达终点。2、如果碰到石头,冰壶就会停在石头旁边的区域,而石头会消失,也就是从“1”变成“0”。3、如果冰壶静止的时候挨着石头,那么冰壶就不能向这个方向运动。4、如果没有石头或终点,冰壶会一直运动到界原创 2017-01-22 00:11:41 · 240 阅读 · 0 评论 -
HDU1501 Zipper(DFS+记忆化搜索)
题意:给三个字符串,保证第三个串长度是前两个串长度之和,确定前两个串保持原有的字母顺序能不能拼成第三个串。思路:直接搜索的话会有大量重复的运算,要用记忆化数组记录之前的结果。当匹配到第一个串的第i位和第二个串的第j位时,前面可能有多种情况,但三个串后面的长度一定,所以结果也可以确定,用vis[i][j]记录当前状态是否匹配过。//#include#include#inc原创 2017-01-21 23:41:12 · 355 阅读 · 0 评论 -
POJ3083 Children of the Candy Corn(DFS+BFS)
链接:http://poj.org/problem?id=3083题目:Children of the Candy CornTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 14487 Accepted: 6253Description原创 2018-01-25 23:57:50 · 213 阅读 · 0 评论