Submission #1280169

#TimeUsernameProblemLanguageResultExecution timeMemory
1280169ducanh0811Bosses (BOI16_bosses)C++20
0 / 100
2 ms572 KiB
#include <bits/stdc++.h> #define int long long #define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i) #define REV(i, a, b) for (int i = (a), _b = (b); i >= _b; --i) using namespace std; #define MAXN 5005 vector<int> g[MAXN]; vector<int> adj[MAXN]; int n; int vi[MAXN]; int dp[MAXN]; void DP(int u){ for(int &x : adj[u]){ DP(x); dp[u] += dp[x]; } dp[u]++; } void solve(){ cin >> n; FOR(i, 1, n){ int k; cin >> k; FOR(j, 1, k){ int x; cin >> x; g[x].push_back(i); } } int res = 1e15; FOR(root, 1, n){ FOR(i, 1, n){ adj[i].clear(); dp[i] = 0; } deque<int> dq; dq.push_back(root); vi[root] = root; while (dq.size()){ int cur = dq.front(); dq.pop_front(); for (int &x : g[cur]){ if (vi[x] == root) continue; vi[x] = root; adj[cur].push_back(x); dq.push_back(x); } } DP(root); int sum = 0; FOR(i, 1, n) sum += dp[i]; res = min(res, sum); } cout << res; } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...