Pagini recente » Cod sursa (job #130324) | Cod sursa (job #1393527) | Cod sursa (job #2330327) | Cod sursa (job #2741111) | Cod sursa (job #1487794)
#include <bits/stdc++.h>
#define pb push_back
#define f first
#define s second
#define pii pair<int, int>
#define mp make_pair
using namespace std;
const string name = "zvon",
in_file = name + ".in",
out_file = name + ".out";
ifstream fin(in_file);
ofstream fout(out_file);
const int MAX = 1e5 + 5;
int dp[MAX], t, n;
vector<int> gr[MAX];
void dfs (int node) {
for (auto it: gr[node])
dfs(it);
vector<int> temp;
for (auto son: gr[node])
temp.pb(dp[son]);
sort(temp.begin(), temp.end(), greater<int>());
int cnt = 0;
for (auto vaca: temp)
dp[node] = max(++cnt + vaca, dp[node]);
}
int main() {
fin >> t;
for (int test = 1; test <= t; test++) {
fin >> n;
for (int i = 1; i <= n; i++)
gr[i].clear();
memset(dp, 0, sizeof(dp));
for (int a, b, i = 1; i < n; i++) {
fin >> a >> b;
gr[a].pb(b);
}
dfs(1);
fout << dp[1] << '\n';
}
return 0;
}