主页面:http://blog.youkuaiyun.com/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;
#define AIM 1 //123456789的哈希值为1
struct node
{
int status;
int s[9];
int loc;
char path;
int pre; //pre为上一个操作在队列中的下标,用于输出路径
};
int vis[MAXN], fac[9] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320};
int dir[4][2] = { -1,0, 1,0

这篇博客详细介绍了如何解决POJ1077问题,通过两种不同的方法实现正向BFS。第一种方法使用数组作为队列,并用结构体内的pre字段记录前一个状态的索引。第二种方法则将pre和path移到结构体外部,通过当前状态status来追溯上一个状态。
最低0.47元/天 解锁文章
817

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



