题目翻译:
给定一颗家谱树,求得人数最多的一代有多少人及其深度。
范围如下:
题解思路:
dfs求解。
代码:
#include<bits/stdc++.h>
using namespace std;
int N, M;
vector<int> v[101];
vector<int> population(101);
void dfs(int curnode, int curdeep)
{
population[curdeep]++;
for (auto i : v[curnode])
dfs(i, curdeep + 1);
}
int main()
{
cin >> N >> M;
int a, b, c;
for (int i = 0;i < M;i++)
{
cin >> a >> b;
while (b--)
{
cin >> c;
v[a].push_back(c);
}
}
dfs(1, 1);
cout << *max_element(population.begin(), population.end()) << " " << max_element(population.begin(), population.end())-population.begin();
}
坑点:
无