首页 > 代码库 > hdu 1869 六度分离
hdu 1869 六度分离
floyd 点对点的路径
两个人如果认识 则记为1 两个人之间的路径超过7,则为no
1 #include<stdio.h> 2 #include<string.h> 3 #define INF 9999999 4 int d[1000][1000]; 5 int v,e; 6 void init() 7 { 8 int i,j; 9 for(i = 0; i < v; i++)10 for(j = 0; j < v; j++)11 if(i == j) d[i][j] = 0;12 else d[i][j] = INF;13 }14 int floyd()15 {16 int i,j,k,cnt;17 for(k = 0;k < v; k++)18 for(i = 0 ;i < v; i++)19 for(j = 0;j < v;j++)20 {21 cnt = d[i][k] + d[k][j];22 if(cnt < d[i][j])23 {24 d[i][j]=cnt;//киЁз25 }26 }27 for(i = 0 ; i < v; i++)28 for(j = 0;j < v;j++)29 if(d[i][j] > 7)return 0;30 return 1;31 }32 33 int main()34 {35 int i,j,u,w;36 while(scanf("%d%d",&v,&e)!=EOF)37 {38 init();39 for(i = 0; i < e; i++)40 {41 scanf("%d%d",&u,&w);42 d[u][w] = d[w][u] = 1;43 }44 if(floyd())printf("Yes\n");45 else printf("No\n");46 }47 return 0;48 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。