HDU1869 六度分离(Floyd算法)

来源:互联网 发布:会员生日提醒软件 编辑:程序博客网 时间:2024/05/19 03:46
 题目链接 :http://acm.hdu.edu.cn/showproblem.php?pid=1869

#include<cstdio>#include<iostream>#include<sstream>#include<cstdlib>#include<cstring>#include<string>#include<climits>#include<cmath>#include<algorithm>#include<queue>#include<vector>#include<stack>#include<set>#include<map>using namespace std;#define N 210#define MAX 32767int main(){   int map[N][N];    int n,m,i,j,a,b,k;    while(~scanf("%d%d",&n,&m))    {        for(i=0;i<n;i++)            for(j=0;j<n;j++)            map[i][j]=MAX;        for(i=0;i<m;i++)        {            scanf("%d%d",&a,&b);            map[a][b]=map[b][a]=1;        }        for(k=0;k<n;k++)            for(i=0;i<n;i++)            for(j=0;j<n;j++)            if(map[i][k]+map[k][j]<=map[i][j])            map[i][j]=map[i][k]+map[k][j];            int flag=0;        for(i=0;i<n;i++)            {            for(j=0;j<n;j++)            if(map[i][j]>7)            {printf("No\n");            flag=1;            break;}            if(flag)                break;            }           if(!flag)            printf("Yes\n");    }    return 0;}


0 0
原创粉丝点击