博主本身很想提高一下自己的水平,于是打算写一下以前一直觉得很难的A*启发式搜索,努力工作了一个多小时,终于把这么一个恶心的程序调试完成了(不要问我启发式搜索是什么,网上有的是,博主只是给大家提供一下参考代码),这个代码都有注释,而且测试通过了(最末端有博主的测试数据之一),希望大家可以因此有所提高!
/*
ID: ljf_cnyali
PROG: A*
LANG: C++
*/
#include<bits/stdc++.h>
using namespace std;
#define REP(i, a, b) for(int i = (a), _end_ = (b);i <= _end_; ++ i)
#define mem(a) memset((a), 0, sizeof(a))
#define str(a) strlen(a)
const int maxn = 1010;
int Row, Col;//地图大小
struct block {
int f, g, h, Fx, Fy, Mx, My;//F = G + H, Fx, Fy是父亲的坐标, Mx, My是现在的坐标
};
int dt[4][2] = {
{
0, -1}, {-1, 0}, {
1, 0}, {
0, 1}};//east, south, north, west
struct block Open[maxn], Close[maxn];//队列
int Startx, Starty, Endx, Endy;//起点终点坐标
int</