主页面:http://blog.csdn.net/dolfamingo/article/details/77825569
代码一:以数组充当队列,利用结构体中的pre追溯上一个状态在数组(队列)中的下标:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <string>
#include <set>
#define ms(a,b) memset((a),(b),sizeof((a)))
using namespace std;
typedef long long LL;
const int INF = 2e9;
const LL LNF = 9e18;
const int MOD = 1e9+7;
const int MAXN = 1e6+10;
struct node
{
int status;
int s[9];
int loc;
char op;
int pre; //pre为上一个操作在队列中的下标,用于输出路径
};
int vis[MAXN], fac[9] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320};
int dir[4][2] = { 0,1,0,-1, 1,0, -1,0 };
char op[4] = {'l', 'r', 'u

这篇博客详细介绍了如何解决POJ1077问题,通过两种不同的方法实现反向BFS。第一种方法使用数组作为队列,并用结构体内的pre字段记录上一个状态的数组下标。第二种方法则将pre和path信息移出结构体,直接根据当前状态status来追溯上一个状态。文章提供了具体的代码实现和分析。
最低0.47元/天 解锁文章
481

被折叠的 条评论
为什么被折叠?



