PAT 1094. The Largest Generation (25)

来源:互联网 发布:mac最新远程windows 编辑:程序博客网 时间:2024/05/24 06:46

与六度空间相似 更简单一些

#include<vector>
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<queue>
#include<map>
#include<string>
#include<set>
#include<stack>
using namespace std;


int main()
{
    vector<int> v[101];
    int a[101]={0};
    int sum[101]={0};
   int m,n;
   scanf("%d%d",&n,&m);
   int index ,sonnum,son;
   for(int i=0;i<m;i++)
   {
        scanf("%d%d",&index,&sonnum);
        for(int j=0;j<sonnum;j++)
           {
               scanf("%d",&son);
               v[index].push_back(son);
               a[son]=1;
           }
   }
   int root;
int num=1;


      for(int i=1;i<=n;i++)
      if(!a[i])
      {
          root=i;
          break;
      }


      queue<int> q;
      q.push(root);
      q.push(-1);
      int t;
    int MAX=0;
     while(!q.empty()){


              t=q.front();
    if(t!=-1)
sum[num]++;
              q.pop();
             if(t==-1)
              {
                  num++;
              continue;
              }
   for(int i=0;i<v[t].size();i++)
         {
             q.push(v[t][i]);




         }
         if(sum[num]>MAX)
         {
             index=num;
             MAX=sum[num];
         }


 if(q.front()==-1)
  q.push(-1);
  }


     printf("%d %d\n",MAX,index);
            return 0;
}

0 0
原创粉丝点击