本文共 834 字,大约阅读时间需要 2 分钟。
基础地不能再基础地BFS,记录路径也不是很麻烦
#include#include #include #include #include #include #include #define INF 0x3f3f3f3f#define MAXN 100010using namespace std;int mp[10][10],vis[10][10];int dx[]={ 0,0,1,-1};int dy[]={ 1,-1,0,0};struct Node{ int x,y; int stepx[30],stepy[30],cnt;};void bfs(){ Node start; start.x=0,start.y=0,start.cnt=0; queue q; q.push(start); while(!q.empty()) { Node tmp=q.front(),tmp1; q.pop(); if(tmp.x==4&&tmp.y==4) { printf("(0, 0)\n"); for(int i=0;i =0&&tmp1.x<=4&&tmp1.y>=0&&tmp1.y<=4&&!vis[tmp1.x][tmp1.y]&&mp[tmp1.x][tmp1.y]==0) { vis[tmp1.x][tmp1.y]=1; tmp1.stepx[tmp1.cnt]=tmp1.x; tmp1.stepy[tmp1.cnt++]=tmp1.y; q.push(tmp1); } } }}int main(){ for(int i=0;i<5;++i) for(int j=0;j<5;++j) scanf("%d",&mp[i][j]); memset(vis,0,sizeof(vis)); bfs(); return 0;}
转载地址:http://nicvb.baihongyu.com/