Submission #673733

#TimeUsernameProblemLanguageResultExecution timeMemory
673733MilosMilutinovicDostavljač (COCI18_dostavljac)C++14
140 / 140
896 ms14092 KiB
/** * author: wxhtzdy * created: 21.12.2022 21:21:48 **/ #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector<int> a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } vector<vector<int>> g(n); for (int i = 0; i < n - 1; i++) { int u, v; cin >> u >> v; --u; --v; g[u].push_back(v); g[v].push_back(u); } vector<vector<vector<int>>> dp(n, vector<vector<int>>(m + 1, vector<int>(2))); function<void(int, int)> Solve = [&](int v, int pv) { dp[v][1][0] = a[v]; dp[v][1][1] = a[v]; for (int u : g[v]) { if (u == pv) { continue; } Solve(u, v); for (int i = m - 1; i >= 0; i--) { for (int j = 0; j <= m; j++) { int new_i = j + i + 2; if (new_i <= m) { dp[v][new_i][1] = max(dp[v][new_i][1], dp[v][i][1] + dp[u][j][0]); dp[v][new_i][0] = max(dp[v][new_i][0], dp[v][i][0] + dp[u][j][0]); } if (new_i - 1 <= m) { dp[v][new_i - 1][1] = max(dp[v][new_i - 1][1], dp[v][i][0] + dp[u][j][1]); } } } } /* for (int i = m - 1; i >= 0; i--) { dp[v][i + 1][0] = max(dp[v][i + 1][0], dp[v][i][0] + a[v]); dp[v][i + 1][1] = max(dp[v][i + 1][1], dp[v][i][1] + a[v]); } */ }; Solve(0, 0); int ans = 0; for (int i = 0; i <= m; i++) { ans = max(ans, dp[0][i][0]); ans = max(ans, dp[0][i][1]); } cout << ans << '\n'; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...