Submission #574396

#TimeUsernameProblemLanguageResultExecution timeMemory
574396piOOESpring cleaning (CEOI20_cleaning)C++17
34 / 100
1095 ms21272 KiB
#include <bits/stdc++.h> using namespace std; #define sz(x) ((int)size(x)) #define all(x) begin(x), end(x) #define trace(x) cout << #x << ": " << (x) << endl; typedef long long ll; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); int rand(int l, int r) { return (int) ((ll) rnd() % (r - l + 1)) + l; } const int N = 100000, infI = 1e9 + 7; const ll infL = 3e18; vector<int> g[N * 2]; ll dp[3][N * 2]; //LL??? void dfs(int v, int p) { dp[0][v] = 0; dp[1][v] = dp[2][v] = infL; if (sz(g[v]) <= 1) { //v is a leaf dp[1][v] = 1; } else { for (int to: g[v]) { if (to != p) { dfs(to, v); array<ll, 3> dq = {dp[0][v], dp[1][v], dp[2][v]}; dp[0][v] = min({dq[2] + dp[2][to], dq[1] + dp[1][to]}); dp[1][v] = min({dq[0] + dp[1][to], dq[2] + dp[1][to], dq[1] + dp[2][to]}); dp[2][v] = min({dq[0] + dp[2][to], dq[2] + dp[2][to], dq[1] + dp[1][to]}); } } dp[1][v] += 1; dp[2][v] += 2; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, q; cin >> n >> q; int root = -1; for (int i = 0; i < n - 1; ++i) { int a, b; cin >> a >> b; --a, --b; g[a].push_back(b); g[b].push_back(a); } for (int i = 0; i < n; ++i) { if (sz(g[i]) > 1) { root = i; break; } } assert(root != -1); while (q--) { int D; cin >> D; vector<int> a(D); for (int i = 0; i < D; ++i) { cin >> a[i]; --a[i]; g[a[i]].push_back(i + n); } dfs(root, -1); cout << (dp[0][root] >= infL ? -1 : dp[0][root]) << '\n'; for (int i = 0; i < D; ++i) { g[a[i]].pop_back(); } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...