标签:杭电 acm 最短路dijkstra
8 7 0 1 1 2 2 3 3 4 4 5 5 6 6 7 8 8 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0
Yes Yes
#include<cstdio>
#include<algorithm>
#define INF 0x3f3f3f3f
using namespace std;
int cost[110][110],d[110];
bool mark[110];
int n,m;
void dijkstra(int a)
{
for(int i=0;i<n;i++)
{
d[i]=INF;
mark[i]=false;
}
d[a]=0;
while(true)
{
int v=-1;
for(int j=0;j<n;j++)
{
if(!mark[j]&&(v==-1||d[j]<d[v]))
v=j;
}
if(v==-1)
break;
mark[v]=true;
for(int j=0;j<n;j++)
d[j]=min(d[j],d[v]+cost[v][j]);
}
}
int main()
{
int a,b,flag;
while(~scanf("%d%d",&n,&m))
{
flag=1;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cost[i][j]=INF;
}
}
for(int i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
cost[a][b]=cost[b][a]=1;
}
for(int k=0;k<n;k++)
{
dijkstra(k);
for(int t=0;t<n;t++)
{
if(d[t]>7)
{
flag=0;
break;
}
}
if(!flag)
break;
}
if(flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:杭电 acm 最短路dijkstra
原文地址:http://blog.csdn.net/zhenzheni/article/details/47761647