码迷,mamicode.com
首页 >  
搜索关键字:最小步数    ( 149个结果
HDU 5025 Saving Tang Monk --BFS
题意:给一个地图,孙悟空(K)救唐僧(T),地图中'S'表示蛇,第一次到这要杀死蛇(蛇最多5条),多花费一分钟,'1'~'m'表示m个钥匙(m=dis[当前状态],那么就不再扩展下去了。BFS中的逻辑就很简单了,看代码吧。最后,枚举蛇的状态S,取dis[x][y][m+1][S]的最小值即为最小步数...
分类:其他好文   时间:2014-09-20 19:38:49    阅读次数:443
poj 3009 Curling 2.0 (dfs)
题意:在一个冰面网格板上,有空白处(无障碍),和障碍块,有一个小石头,给定其起点和终点,求从起点到终点的最小步数 规则:小石头不能在障碍区运动,一旦从某一方向开始运动,不会改变方向,也不会停止,除非碰到障碍物或到达终点才会停止,这为一步。若碰到障碍物,小石头将停在障碍物的旁边,被碰到的一个障碍物将消失。...
分类:其他好文   时间:2014-09-19 15:45:45    阅读次数:202
Jump Game II (leetcode) DP的两种思路
第一种思路是: dp(i):到位置i所需要的最少步数 dp(i)一定是递增的,所以从j=A[i]开始(从最远的位置开始),更新数组直到dp(j+i) 如果去掉,会TLE int jump(int A[], int n) { int* dp = new int[n];//dp[i]到i所需的最小步数 memset(dp, 0x3f, sizeof(int)...
分类:其他好文   时间:2014-09-16 01:38:29    阅读次数:241
HDU5012-Dice(BFS)
题目链接 题意:给你两个色子,如果可以通过旋转使两个色子的面一一对应相等(旋转规则题目给出),求最小步数,如果不行,输出-1。 思路:用BFS求最少步数。 代码: #include #include #include #include #include using namespace std; const int MAXN = 6; struct n...
分类:其他好文   时间:2014-09-14 23:44:37    阅读次数:252
POJ 1753 Flip Game (高斯消元 枚举自由变元求最小步数)
题目链接题意:4*4的黑白棋,求把棋全变白或者全变黑的最小步数。分析:以前用状态压缩做过。 和上题差不多,唯一的不同是这个终态是黑棋或者白棋,但是只需要把给的初态做不同的两次处理就行了。感觉现在还只是会套模板,不能独立的思考,好伤心。。。。 1 #include 2 #include 3 ...
分类:其他好文   时间:2014-08-19 10:52:44    阅读次数:274
UVA1374 - Power Calculus(迭代深搜+剪枝)
题目链接 题意:给出x和正整数n,问最少需要几次乘除法 可以得到n = x^m 思路:其实是关于指数的操作,即从1到m最少的步数。我们可以先确定最少步数m,然后进行迭代,迭代的过程也就是判断通过相加减所得到的数可以在m次操作中等于n,如果可以的话,m即为最小步数,如果不行的话,m++,进行下一次迭代。 代码: #include #include #include...
分类:其他好文   时间:2014-08-17 21:27:12    阅读次数:204
LeetCode - Jump Game
一开始想DP一步步迭代更新,求出到跳到最后一个的最小步数,但是时间复杂度O(nk),会超时。 再一想,发现该题只需要返回能否到达最后一个,不需要最小步数,所以迭代时候只需要保留当前能够走到的最远距离tmpMax,时间复杂度降到O(n)。 class Solution { public: const int MAXVALUE = 1 << 30; bool canJump(int A[],...
分类:其他好文   时间:2014-07-26 15:30:51    阅读次数:210
汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI
汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上, 规则小的必需放在大的上面,每次搬一个,求最小步数。这个问题简单,DP:a[n]=a[n-1]+1+a[n-1],先把 上面的n-1个放在B上,把最大的放在目标C上,再把N-1个放回到C上即可。 网上的一种最优解法如下:(1)将x(1 #inc...
分类:其他好文   时间:2014-07-20 23:18:31    阅读次数:272
编程算法 - 迷宫的最短路径 代码(C++)
迷宫的最短路径 代码(C++)本文地址: http://blog.csdn.net/caroline_wendy题目: 给定一个大小为N*M的迷宫. 迷宫由通道和墙壁组成, 每一步可以向邻接的上下左右四格的通道移动.请求出从起点到终点所需的最小步数. 请注意, 本题假定从起点一定可以移动到终点.使用宽度优先搜索算法(DFS), 依次遍历迷宫的四个方向, 当有可以走且未走过的方向时, 移动并且步数加...
分类:编程语言   时间:2014-07-17 21:02:38    阅读次数:323
hdu1240/poj2225 BFS广搜的再理解
这同样是一道搜索题,所不同的是要搜索的图是三维的而不是二维的。但这并没什么大的改变,只是增加了两个搜索的方向而已。 要注意的地方是,所给出的起点终点的坐标是按照 列,行,层的顺序。 与DFS不同,BFS能保证所搜到的路径一定是最短路径,所以我们不需要维护一个多维(此处为3维)数组来记录访问到每一点的最小步数,只需要维护一个多维数组来标记是否走过就可以了。DFS中是要不停回溯来找最短路径的,但是BFS是不需要的。这是BFS本身的性质所决定的,BFS能保证第一次搜索到某一点时所走的路径就是到该点的最短路径。以后...
分类:其他好文   时间:2014-07-14 13:42:05    阅读次数:181
149条   上一页 1 ... 12 13 14 15 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!