Submission #1284623

#TimeUsernameProblemLanguageResultExecution timeMemory
1284623hrantsargsyanStrah (COCI18_strah)C++20
0 / 110
1 ms404 KiB
#include <iostream> #include <vector> using namespace std; const int N = 1005; vector<int> g[N]; int dp[N][N][2]; int a[N], n, m; void dfs(int node, int parent) { for (int i = 0;i <= m;++i) { dp[node][i][1] = a[node]; dp[node][i][0] = a[node]; } dp[node][0][0] = 0; dp[node][0][1] = 0; for (auto child : g[node]) { if (child == parent) { continue; } dfs(child, node); for (int time = m;time >=2;--time) { for (int timeChild = time-1;timeChild >= 0;--timeChild) { if (time - timeChild >= 2) { dp[node][time][0] = max(dp[node][time][0], dp[node][time - timeChild - 2][0] + dp[child][timeChild][1]); } dp[node][time][0] = max(dp[node][time][0], dp[node][time - timeChild - 1][1] + dp[child][timeChild][0]); } for (int timeChild = time - 2;timeChild >= 0;--timeChild) { dp[node][time][1] = max(dp[node][time][1], dp[node][time - timeChild - 2][1]+dp[child][timeChild][1]); } } } } int main() { cin >> n >> m; for (int i = 1;i <= n;++i) { cin >> a[i]; } for (int i = 1;i < n;++i) { int x, y; cin >> x >> y; g[x].push_back(y); g[y].push_back(x); } dfs(1, 0); //for (int i = 1;i <= n;++i) //{ // for (int j = 0;j <= m;++j) // { // cout << "From " << i << " using " << j << " time." << endl; // cout << dp[i][j][1] << " " << dp[i][j][0] << endl; // } //} cout << max(dp[1][m][0], dp[1][m][1]); }
#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...