hdu1869-六度分离(floyd模板题)

来源:互联网 发布:企业seo外包 编辑:程序博客网 时间:2024/06/08 12:25
/**  hdu1869 **/#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<memory.h>#include<map>#include<queue>#include <deque>#include <list>#include <ctime>#include <stack>#include <vector>#include<set>#define Maxn 105typedef long long ll;#define rep(i,j,n) for(int i=j;i<=n;i++)#define per(i,j,k) for(int i=j;i>=k;--i)#define lowbit(a) a&-a#define Max(a,b) a>b?a:b#define Min(a,b) a>b?b:aconst int inf = 0x3f3f3f3f;const double pi = acos(-1.0);using namespace std;int map_p[Maxn][Maxn];int n,m,x,y;bool flag=true;void Init(){   rep(i,0,n-1)       rep(j,0,n-1)       i==j?map_p[i][j]=0:map_p[i][j]=inf;}void Floyd(){   rep(k,0,n-1)       rep(i,0,n-1)          rep(j,0,n-1)             map_p[i][j]>map_p[i][k]+map_p[k][j]?map_p[i][j]=map_p[i][k]+map_p[k][j]:map_p[i][j]=map_p[i][j];}int main(){    while(~scanf("%d%d",&n,&m))    {   Init();        flag=true;        rep(i,1,m)        {scanf("%d%d",&x,&y);        map_p[x][y]=map_p[y][x]=1;        }        Floyd();        rep(i,0,n-1)           rep(j,0,n-1)            if(map_p[i][j]>7) flag=false;        if(flag)    printf("Yes\n");        else        printf("No\n");    }    return 0;}

0 0