せいしゅん404 • 4年前
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int a[105][105],q[105][2];
bool p[105];
int main(void){
memset(p,true,sizeof(p));
int n,x,y,f,r,tmp;
cin>>n>>x>>y;
//读图
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
//设置队首队尾
f=r=1;
q[r][0]=x;//发起找人需求的人的编号
q[r][1]=0;//关系数
p[x]=false;//入队就标记为false
//开始进行队列的操作
while(f<=r){
tmp=q[f][0];
//判断,如果tmp就是要找的人的编号
if(tmp==y){
cout<<q[f][1]-1<<endl;
return 0;
}
for(int i=1;i<=n;i++){
//遍历他认识的每一个人
if(p[i]&&a[tmp][i]){
r++;
q[r][0]=i;
q[r][1]=q[f][1]+1;
p[i]=false;
}
}
f++;
}
return 0;
}
评论:
请先登录,才能进行评论