hdu 1869
题意是给m组人物关系,然后判断是否符合六度分离,代码主要就是三个for那里
然后要记得后面判断的时候是大于7,这题除了Florde算法,还有另外一种算法,不过我没记。。。。
#include <iostream> using namespace std; int M[101][101]; int main() { int i,j,m,n,a,b,k; int flag; while(cin>>n>>m){ //flag=1; for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i==j) M[i][j]=0; else M[i][j]=M[j][i]=99999; } while(m--) { cin>>a>>b; M[a][b]=1; M[b][a]=1; } for(k=0;k<n;k++) for(i=0;i<n;i++) for(j=0;j<n;j++) { if(M[i][j]>(M[i][k]+M[k][j])) M[i][j]=M[i][k]+M[k][j]; } flag=1; for(i=0;i<n;/*cout<<endl*/i++) for(j=0;j<n;j++) { //cout<< M[i][j]<<" "; if(M[i][j]>7) { flag=0; break; } } if(flag) cout<<"Yes\n"; else cout<<"No\n"; } return 0; }