一开始想到floyd
做的时候出现了一点问题 :如果两者有关系 则定义为1;
但是数组是对称的 所以要设置成 m1[a][b]=m1[b][a]=1;
#includeusing namespace std;int m1[300][300];int main(){ int n,m; while(scanf("%d%d",&n,&m)==2) { memset(m1,10,sizeof(m1)); for(int i=0;i m1[i][k]+m1[k][j]) m1[i][j]=m1[i][k]+m1[k][j]; } // for(int i=0;i 7&&m1[j][i]>7){ok=0;break;} } if(ok)printf("Yes\n"); else printf("No\n"); }}