HDOJ 1869

 #include<stdio.h>
int a[][];
#define inf 0xffffff;
void floyed(int n)
{
int i,j,k;
for(k=;k<n;k++)
{
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
if(a[i][k]+a[k][j]<a[i][j])
a[i][j]=a[j][i]=a[i][k]+a[k][j];
}
}
}
}
int main()
{
int n,m,i,j,x,y,flag;
while(scanf("%d %d",&n,&m)!=EOF)
{
flag=;
for(i=;i<n;i++)
for(j=;j<n;j++)
a[i][j]=inf;
for(i=;i<m;i++)
scanf("%d %d",&x,&y),
a[x][y]=a[y][x]=;
floyed(n);
for(i=;i<n;i++)
{
for(j=i+;j<n;j++)
{
if(a[i][j]>)
{
flag=;
break;
}
}
}
if(flag)
printf("Yes\n");
else
printf("No\n");
}
}

floyed算法,转化为图论中的顶点对之间的距离,不能超过7.

9885303 2013-12-23 23:14:55 Accepted 1869 62MS 292K 683 B C++ 泽泽
上一篇:SQL Server中字段类型对应的C#中的数据类型


下一篇:自己定义一个tab指令