本意是看是否能从vis[0][0]走到vis[12][12]
但无论输入什么,都输出no。我看不出错误
#include<bits/stdc++.h>
using namespace std;
bool bfs(){
queue<pair<int,int> > q;
bool vis[13][13];
for(int i=0;i<13;i++)
{
for(int j=0;j<13;j++)
{
cin>>vis[i][j];
}
}
q.push(make_pair(0,0));
while(!q.empty())
{
pair<int,int> zb=q.front();
if(vis[zb.first+1][zb.second]){
q.push(make_pair(zb.first+1,zb.second));
vis[zb.first+1][zb.second]=1;
}
if(vis[zb.first-1][zb.second]){
q.push(make_pair(zb.first-1,zb.second));
vis[zb.first-1][zb.second]=1;
}
if(vis[zb.first][zb.second+1]){
q.push(make_pair(zb.first,zb.second+1));
vis[zb.first][zb.second+1]=1;
}
if(vis[zb.first][zb.second-1]){
q.push(make_pair(zb.first,zb.second-1));
vis[zb.first][zb.second-1]=1;
}
q.pop();
}
if(vis[12][12]==0)return false;
else return true;
}
int main(){
if(bfs())cout<<"yes";
else cout<<"no";
}