题目意思:
猴子定义了4个状态 空手移动,推箱子,爬箱子,摘香蕉 用 (w,x,y,z)描述
w定义了猴子位置
x为1表示猴子在箱子上,0表示不在箱子上
y表示箱子位置
z为1表示猴子摘到香蕉(结束),为0表示没有摘到香蕉(继续搜索)
目前仍有些bug
随机生产 猴子 箱子 香蕉的位置,通过BFS搜索并记录路径得出猴子的行走轨迹(因为是宽松搜,得到的就是最优解)
#include<iostream>
#include<queue>
#include<algorithm>
#include<cstdlib>
#include<stdio.h>
#include<ctime>
#include<cstring>
#include<cmath>
#define INF 0x3f3f3f3f
#define MAX 100000
using namespace std;
int a,b,c;//a 猴子 b箱子 c香蕉
int dir[2][2] = {
{0,-1},{0,1}};
struct Node{
int w,x,y,z;
int close;
};
int pa[MAX];
int end;
Node nodes[MAX];
int getDis(int x1, int x2){
return abs(x2-x1);
}
void go(int w,int x, int y, int z)
{
if(x == 1 && z== 0){
printf("猴子在%d位置爬上箱子\n",w);
}
else if(x == 1 && z == 1){
//p