Submission #851102

#TimeUsernameProblemLanguageResultExecution timeMemory
851102ItamarPaths (RMI21_paths)C++14
36 / 100
817 ms760 KiB
// greedy cat.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <iostream> using namespace std; #include <vector> #define ll long long #define pll pair<ll,ll> #define vll vector<ll> #include <queue> const int siz = 2000; vector<pll> fr[siz]; ll ans[siz]; int N,K; #include <algorithm> #include <set> pll dfs(int i, vector<pll>&pad,vector<pll>&vec) { pll ansi={0,i}; for (pll j: fr[i]) { if (j.first != pad[i].first) { pad[j.first] = { i,j.second }; pll k =dfs(j.first, pad, vec); //s.insert({ -k.first - j.second,k.second }); vec.push_back({ -k.first - j.second,k.second }); ansi = max(ansi, { k.first + j.second,k.second }); } } return ansi; } void calc(int r) { set<pll> s; vector<pll> vec; vector<pll> pad(N,{-1,-1}); dfs(r,pad,vec); sort(vec.begin(), vec.end()); for (pll p : vec)s.insert(p); vector<bool> vis(N); vis[r] = 1; for (int i = 0; i < K; i++) { if (s.empty())break; pll p = *s.begin(); ans[r] -= p.first; ll cur = 0; int v = p.second; while (!vis[v]) { cur += pad[v].second; s.erase({ -cur, p.second }); vis[v] = 1; v = pad[v].first; } } } int main() { int n,k; cin >> n >> k; N = n, K =k; for (int i = 0; i < n - 1; i++) { int x, y, c; cin >> x >> y >> c; x--, y--; fr[x].push_back({ y,c }); fr[y].push_back({ x,c }); } for (int i = 0; i < n; i++) { calc(i); } for (int i = 0; i < n; i++)cout << ans[i] << "\n"; } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
#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...