原题地址简单动态规划,跟最大子串和类似。一维状态空间可以经过压缩变成常数空间。代码: 1 int maxProduct(int A[], int n) { 2 if (n = 0; i--) {10 int tmp = minp;11 ...
分类:
其他好文 时间:
2015-01-30 10:36:58
阅读次数:
179
题意:独轮车均分为5个部分即五种颜色,每次前进一格恰好换一种颜色接触地面。要求从起点走到终点,但是起点时人是面向北的、绿色接触地面,终点时需要绿色接触地面、朝向哪无所谓。其中,在每个格子,有三种选择,要么前进一格,要么左转90度,要么右转90度。每种选择都是耗时一秒。
思路:将每种约束都看做一个属性,或者说一个状态由4元组决定:横坐标、纵坐标、方向、颜色。这样起始状态知道、终点状态知道,进行bf...
分类:
其他好文 时间:
2015-01-28 22:36:56
阅读次数:
207
题意:
一个木板上被分成了很多区域,每个区域要涂上一种特定的颜色,当涂一个区域的时候,它上方与它有重合部分的区域必须之前要涂好。求最少需要拿几次画笔(拿一次画笔可以涂颜色相同的多个区域)。
分析:
上方与它有重合部分的区域必须之前要涂好这个限制可以用拓扑序来描述,每次涂有很多种可以涂的颜色,dfs就可以了。dfs的状态空间维数定为拿笔的次数,每次枚举可以涂的颜色。要注意的是dfs过程中要慎用...
分类:
其他好文 时间:
2015-01-11 09:37:41
阅读次数:
129
一:A*的介绍
A*算法是一种启发式搜索算法,就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。
该算法可以用公式f(n)=g(n)+h(n)表示,其中 f(n) 是从初始点经由节点n到目标点的估价函数,g(n) 是在状态...
分类:
编程语言 时间:
2014-12-14 09:29:46
阅读次数:
305
启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。估价函数:从当前节点移动到目标节点的预估费用;这个估计就是启发...
分类:
其他好文 时间:
2014-09-29 14:21:40
阅读次数:
211
原作者文章链接:http://www.policyalmanac.org/games/aStarTutorial.htm
启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价是十分重要的。采用了不同的估价可以有不同的效果。
估价函数:从当前节点移...
分类:
其他好文 时间:
2014-07-31 13:32:56
阅读次数:
207
Markov Chain马尔科夫链(Markov chain)是一个具有马氏性的随机过程,其时间和状态参数都是离散的。马尔科夫链可用于描述系统在状态空间中的各种状态之间的转移情况,其中下一个状态仅依赖于当前状态。因为系统是随机变化的,所以不可能百分百预测出未来某个时刻的系统状态,但是我们可以预测出未...
分类:
其他好文 时间:
2014-07-12 00:37:55
阅读次数:
288
给定一个数串,以及K,求对这个数串K划分的乘积最大值。DP思路:一开始肯定想到的是递归,假设在某两个字符间有一个乘号,那么乘积最大就是乘号两边的区间接着划分的乘积最大值。于是状态空间表示如下dp[i][k]表示从0~i之间有K个乘号的乘积最大值,dp[i][k] = max(dp[j][k-1]*n...
分类:
其他好文 时间:
2014-06-14 18:17:56
阅读次数:
292
A*搜索算法(A Star Search
Algorithm)A*算法主要用于在二维平面上寻找两个点之间的最短路径。在从起始点到目标点的过程中有很多个状态空间,DFS和BFS没有任何启发策略所以穷举所有的状
态空间,不适合仅需对局部进行搜索的应用。启发式搜索的关键在于:当前节点在选择下一步节点的时候...
分类:
其他好文 时间:
2014-05-29 13:10:48
阅读次数:
227