Ryen的学习笔记

成长有多少新奇的美,就有多少撕裂的痛;离去有多么辽阔的自由,就有多么无边的孤寂。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

03 2010 档案

摘要:第九章动态规划的基本思路:找到问题的最优子结构确定状态写出状态转移方程。 注: 如果发现状态无法转移,我们常考虑增加状态的维度。使用动态规划的动机: 1. 问题是线性的,容易找到最优子结构。 2. 问题是一个多阶段决策问题。动态规划中解答路径的输出不记录,求解完所有状态后,通过状态转移方程递推求出每一步的决策。(注意使用记忆化搜索DP时,打印方案也需要使用函数而不是数组)记录每一步的决策。(LCS问题不好处理)记录方案,每次更新全局最优解时同步跟新方案。动态规划的递推方向:向前递推可以边输入边递推。但是较难按字典序输出方案第十一章 首先总结一下图论中的一些概念: 连通: 如果在一个无向图中从每 阅读全文

posted @ 2010-03-07 18:19 Ryen_lee 阅读(1558) 评论(0) 推荐(0)

摘要:The Suspects(1611,): 考察并查集的基本使用,路径压缩可以有效提升效率。结果要统计含有‘0’元素的集合内元素的个数。Ubiquitous Religions(2524,):一样考察并查集基本使用,结果需要统计所有的集合的个数。Risk(1603,):任意点最短路径,直接只用floyd即可,注意memset(d, 1, sizeof(d));的效果(此时有const int INF = 16843009;)。Freckles(2560,):最小生成树,使用Kruskal算法,并查集使用路径压缩可以0MS。该题中用qsort对边的长度通过编号进行间接排序,应该是w[a] w[ 阅读全文

posted @ 2010-03-07 18:18 Ryen_lee 阅读(507) 评论(0) 推荐(0)

摘要:A*算法不同于一般搜索算法就是其有一个估价函数 f(x). 每个节点的f(x) = g(x) + h(x)。g(x)是对从初始节点到当前节点所需最小费用的估计,h(x)是从当前节点到目标节点的所需最小费用估计(两个都是估计,前者偏大,后者偏小)。我们每扩展出来一个节点后都要计算其在当前状态下的f值, 其中h值只于当前状态有关,而g值则与当前节点是如何扩展来的有关(一般就是父节点深度+1)。任意一节... 阅读全文

posted @ 2010-03-05 14:54 Ryen_lee 阅读(753) 评论(2) 推荐(0)