
IDA*
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVA UVA - 1374 Power Calculus 快速幂计算(迭代加深搜索)
大体题意:给你一个数n,计算如何从x 经过乘法除法快速计算到 x^n。输出最短长度!思路:直接迭代加深最短长度!在dfs中,有两个参数cur 和 s 分别代表当前层数和当前的指数!只有当cur == 深度 并且 s 等于 n时 成立!当cur大于深度 剪枝!或者s × 2 ^ (maxd-cur) 说一下这里,maxd - cur 是剩余的步骤数,s为当前的数原创 2016-05-12 22:40:00 · 706 阅读 · 0 评论 -
例题7-12 UVA - 1343 The Rotation Game 旋转游戏(IDA*)
题目大意:给一个棋盘,问最少进行几次旋转使得中间的数字全部相等!(并且字典序最小!)思路:借鉴了代码仓库,感觉写的很巧妙,简单记录一下!大致思路:用line [][] 二维数组给棋盘进行标号!a[] 一维数组代表当前的棋盘中棋子的标号!center[] 一维数组代表棋盘中间棋子的标号!rev[]数组进行反转列 ,减少了很多代码!先判断是否合法,合法的话直接输出。原创 2016-05-04 00:22:32 · 554 阅读 · 0 评论 -
习题7-7 Egyptian Fractions (HARD version) 埃及分数 (IDA*)
大体题意:在普通的埃及分数上加了 几个限制, 多给了你K个数,让你求出最后的埃及分数结果中分母不能是K个数的某个数的结果。思路:先记录一下 埃及分数算法:利用了迭代加深的搜索方式最后的分母结果记录在ans数组中,最后只需要输出ans 数组即可!首先将ans数组初始化为-1,表示没赋过值,这样在更新答案时,可以判断ans[i] == 1或者 v[i] 在dfs 函数中原创 2016-05-29 17:51:33 · 523 阅读 · 0 评论 -
例题7-10 UVA 11212 Editing a Book (IDA*搜索)
大体题意:给你一个n 个数全排列数组,要求你可以选择一个连续的序列 随便插到一个位置,求最少几步 能到达严格上升的序列?思路:正解是IDA*搜索。一开始简单的以为是BFS ,一想 他还是一个 全排列的数组 用康托展开不正好可以完美哈希么,就写了个bfs 加了一些剪枝 ,9个数的数据跑的非常慢。应该用dfs。根据刘汝佳的分析,有几个地方分析的非常巧妙。我们可以利用后继不原创 2017-02-09 15:13:40 · 413 阅读 · 0 评论