hdu 1869 六度分离

#include<stdio.h>
#define  N  200
#define  inf  300000
int map[N][N];
int main() {
int i,j,n,m,k,f;
while(scanf("%d%d",&n,&m)!=EOF) {
for(i=0;i<n;i++)
for(j=0;j<n;j++)
map[i][j]=inf;
while(m--) {
scanf("%d%d",&i,&j);
map[i][j]=map[j][i]=1;
}
for(k=0;k<n;k++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(map[i][k]<inf&&map[k][j]<inf&&map[i][j]>map[i][k]+map[k][j])
map[i][j]=map[i][k]+map[k][j];
f=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(map[i][j]>7&&i!=j)
f=1;
if(f)
printf("No\n");
else
printf("Yes\n");
}
return 0;
}
posted @ 2014-02-17 20:15  HYDhyd  阅读(121)  评论(0编辑  收藏  举报