样例输入:495 499
样例输出:495/499 = 1/2+1/5+1/6+1/8+1/3992+1/14970
规则是加数少比加数多好,加数相同,小的数越大越好。
分析:回溯无限,宽度优先便利一层都跑不完,所以用迭代加深搜索(iterative deeping):从小到达枚举深度上线maxd,枚举上限还可以减枝。
IDA*算法:深度上线maxd,当前节点n的深度为g(n),乐观估价...
分类:
其他好文 时间:
2015-04-27 15:19:09
阅读次数:
118
IDA*算法 OrzHZWER A*+迭代加深搜索=IDA* 这题的估价相当于一个可行性剪枝,即如果当前走的步数s+未归位的点数>搜索深度k,则剪枝 1 /************************************************************** 2 ...
分类:
其他好文 时间:
2015-02-17 12:50:10
阅读次数:
237
正如书上所说,本题需要用IDA*算法求解启发函数是3d+h>3maxd(d为当前操作步骤数,h为当前逆序对数,maxd为当前枚举的最大步骤数)可见迭代递归的核心思想是枚举ans去dfs是否可行,相反常规搜索是dfs去需找ans。一开始卡在状态图的转移与回溯上,参考(http://blog.csdn....
分类:
其他好文 时间:
2014-07-31 20:13:07
阅读次数:
223
八数码0.0,我又来水博客了。
IDA*算法,A*为曼哈顿距离,判重用康拓展开。
#include
#include
#include
#include
#include
using namespace std;
int a[4][4];
int dx[]={0,0,-1,1};
int dy[]={-1,1,0,0};
char s[]="123804765";
int end[4]...
分类:
其他好文 时间:
2014-05-11 06:20:57
阅读次数:
334