zoukankan      html  css  js  c++  java
  • 六度分离 HDU1869

    一开始想到floyd

    做的时候出现了一点问题 :如果两者有关系 则定义为1;

      但是数组是对称的  所以要设置成  m1[a][b]=m1[b][a]=1;

    #include<bits/stdc++.h>
    using namespace std;
    
    int m1[300][300];
    int main()
    {
    
        int n,m;
        while(scanf("%d%d",&n,&m)==2)
        {
                memset(m1,10,sizeof(m1));
                for(int i=0;i<n;i++)m1[i][i]=0;
            for(int i=1;i<=m;i++)
            {  int a,b;
               scanf("%d %d",&a,&b);
                m1[a][b]=m1[b][a]=1;
    
            }
    
    
    
         //    for(int i=0;i<n;i++)
        //    {for(int j=0;j<n;j++)
         //      printf("%d ",m1[i][j]);
         //      printf("
    ");}
    
    
            for(int k=0;k<n;k++)
                for(int i=0;i<n;i++)
                  for(int j=0;j<n;j++)
            {
                if(m1[i][j]>m1[i][k]+m1[k][j])
    
                m1[i][j]=m1[i][k]+m1[k][j];
    
            }
         //   for(int i=0;i<n;i++)
         //   {for(int j=0;j<n;j++)
         //      printf("%d ",m1[i][j]);
         //      printf("
    ");}
    
               int ok=1;
              for(int i=0;i<n;i++)
              for(int j=0;j<n;j++)
              {
    
                  if(m1[i][j]>7&&m1[j][i]>7){ok=0;break;}
    
              }
    
              if(ok)printf("Yes
    ");
              else printf("No
    ");
    
    
        }
    
    
    
    
    
    }
    View Code
  • 相关阅读:
    《构建之法阅读笔记02》
    《人月神话阅读笔记01》
    第四周学习进度条
    子数组2
    敏捷开发方法综述
    子数组1
    第三周学习进度条
    四则运算3
    第二周学习进度条
    四则运算4
  • 原文地址:https://www.cnblogs.com/bxd123/p/10322898.html
Copyright © 2011-2022 走看看