【PTA-1094】The Largest Generation (25分)

    技术2022-07-14  79

    考点: DFS+树的遍历,其中DFS需要灵活进行更改

    #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <vector> using namespace std; const int maxn = 100 + 10; int res[maxn]; struct node { int data; vector<int> child; } Node[maxn]; void dfs(int index, int level) { res[level]++; for (int i = 0; i < Node[index].child.size(); i++) { dfs(Node[index].child[i], level + 1); } } int main(int argc, char const *argv[]) { int n, m; cin >> n >> m; int id, k, child; for (int i = 0; i < m; i++) { cin >> id >> k; for (int j = 0; j < k; j++) { cin >> child; Node[id].child.push_back(child); } } dfs(1, 1); int maxnum = 0, maxlevel = 1; for (int i = 1; i < 100; i++) { if (res[i] > maxnum) { maxnum = res[i]; maxlevel = i; } } cout << maxnum << " " << maxlevel; return 0; }

     

    Processed: 0.018, SQL: 9