标签:杭电 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