在别人的博客上学习了友元函数和进一步理解了优先队列,觉得priority—queue的确很有用。
题解:首先,如果按照题目给的错误暗示从朋友开始寻找angle则会很麻烦,于是用广搜的特性,从angle出发向四处扩展即可,遇到卫兵要加2,但是要注意由于这种广搜并非步数优先,所以我们利用A*搜索的思想,每次取最优的步数的进行搜索。
#include#include #include using namespace std; char map[205][205]; int V[205][205],n,m;int dir[4][2]={ {-1,0},{1,0},{0,-1},{0,1}}; struct node{ int x,y; int time; friend bool operator < (const node &a,const node &b) //友元函数 { return a.time>b.time; } }; int go(int x,int y){ if(0<=x&&x <=y&&y