水题,没有什么好说的#include<iostream>#include<stdlib.h>#include<stdio.h>#include<vector>#include<queue>using namespace std;using std::vector;using std::queue;const int maxn=110;vector<int> mem[maxn];void bfs(int x,int& level,int& num){ queue<int>q; q.push(x); int l=0; while(q.size()!=0){ l++; int len=q.size(); for(int i=0;i<len;i++){ int a=q.front(); q.pop(); for(int j=0;j<mem[a].size();j++){ q.push(mem[a][j]); } } if(len>num){ num=len; level=l; } }}int main(){ int n,m; int a,b; int k; scanf("%d%d",&n,&m); for(int i=0;i<m;i++){ scanf("%d",&a); scanf("%d",&k); for(int i=0;i<k;i++){ scanf("%d",&b); mem[a].push_back(b); } } //01根节点; int num=0; int level=0; bfs(1,level,num); printf("%d %d",num,level); system(“pause”);}