这道题 哎~~ 好久没有刷题了 知道是一道简单的bfs 但是有点懵 祈祷蓝桥杯过去后 就不再做这些题了 啊 然后这道题主要是让你bfs 出答案 然后自己的格式一直错误 看了一下别人的博客 才发现 输出哪里有个地方是两个空格!
#include <iostream> #include <algorithm> #include <stdio.h> #include <math.h> #include <string.h> #include <queue> #include <vector> using namespace std; int sum,m; int mp[30][5]; bool vis[105]; int ans[105]; void bfs(int t,int len) { int i,j; vis[t]=1; ans[len]=t; for(int i=0;i<3;i++) { int tt=mp[t][i]; if(tt==m&&len==19) { printf("%d: ",++sum); for(int j=0;j<20;j++) printf(" %d",ans[j]); printf(" %d\n",m); } if(!vis[tt]) bfs(tt,len+1); } vis[t]=0; } int main() { sum=0; for(int i=1;i<=20;i++) scanf("%d%d%d",&mp[i][0],&mp[i][1],&mp[i][2]); while(~scanf("%d",&m)&&m!=0) { memset(vis,0,sizeof(vis)); bfs(m,0); } return 0; }