zoukankan      html  css  js  c++  java
  • 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
    ");
    45         else printf("No
    ");
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    诸侯安置
    可可西里
    直线交点
    切割多边形
    ACM挑战程序设计竞赛1.1抽签
    朝鲜战争:轰炸大小和岛
    星际争霸II 战斗问题
    乒乓球
    瑞士轮
    NOIP 2010 普及组解题报告
  • 原文地址:https://www.cnblogs.com/imLPT/p/3908637.html
Copyright © 2011-2022 走看看