제출 #983697

#제출 시각아이디문제언어결과실행 시간메모리
983697vjudge1도로 폐쇄 (APIO21_roads)C++17
0 / 100
35 ms10632 KiB
#include <bits/stdc++.h> using namespace std; // #define int long long #define fastio ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); #define nl "\n" const int maxn = 100005; vector<pair<int, int> > adjlist[maxn]; int dp[maxn][2]; vector<int64_t> minimum_closure_costs(int N, vector<int> U, vector<int> V, vector<int> W){ for (int i=0; i<N-1; i++){ adjlist[U[i]].push_back(make_pair(W[i], V[i])); //weight, node adjlist[V[i]].push_back(make_pair(W[i], U[i])); } for (auto i : adjlist) sort(i.begin(), i.end()); // subtask 1 // vector<int64_t> ans; // int cursum = 0; // ans.push_back(cursum); // for (auto i : adjlist[0]){ // cursum += i.first; // ans.push_back(cursum); // } // reverse(ans.begin(), ans.end()); // subtask 2 dp[0][0] = INT_MAX; dp[0][1] = 0; for (int i=1; i<N; i++){ dp[i][0] = dp[i-1][1]; dp[i][1] = min(dp[i-1][0], dp[i-1][1]) + adjlist[i-1][1].first; // dp[i][1] = min(dp[i-1][0], dp[i-1][1]) + W[i]; } int64_t ansarr[] = {min(dp[N-1][0], dp[N-1][1]), 0}; vector<int64_t> ans(begin(ansarr), end(ansarr)); return ans; }
#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...