제출 #569832

#제출 시각아이디문제언어결과실행 시간메모리
569832LoboRoad Closures (APIO21_roads)C++17
5 / 100
76 ms16716 KiB
#include "roads.h" #include<bits/stdc++.h> using namespace std; const long long inf = (long long) 1e18 + 10; const int inf1 = (int) 1e9 + 10; #define int long long #define dbl long double #define endl '\n' #define sc second #define fr first #define mp make_pair #define pb push_back #define all(x) x.begin(), x.end() const int maxn = 2e5+10; int n; vector<pair<int,int>> g[maxn]; int dp[maxn][2], mark[maxn][2]; //fl = 1 -> o anterior ta usado int sol(int u, int fl) { if(mark[u][fl]) return dp[u][fl]; dp[u][fl] = inf; mark[u][fl] = 1; if(u == n) { return dp[u][fl] = 0; } int v = u+1; int w; for(auto V : g[u]) if(V.fr == v) { w = V.sc; } if(fl) dp[u][fl] = min(dp[u][fl],sol(v,0)); dp[u][fl] = min(dp[u][fl], w+sol(v,1)); return dp[u][fl]; } vector<int> minimum_closure_costs(int32_t N, vector<int32_t> U, vector<int32_t> V, vector<int32_t> W) { n = N; int sm = 0; vector<int> vc; for(int i = 0; i < n-1; i++) { g[U[i]+1].pb(mp(V[i]+1,W[i])); g[V[i]+1].pb(mp(U[i]+1,W[i])); vc.pb(W[i]); sm+= vc.back(); } vector<int> ans; ans.pb(sm); sort(all(vc),greater<int>()); for(int i = 0; i <= n-2; i++) { sm-= vc[i]; ans.pb(sm); } return ans; }

컴파일 시 표준 에러 (stderr) 메시지

roads.cpp: In function 'long long int sol(long long int, long long int)':
roads.cpp:37:33: warning: 'w' may be used uninitialized in this function [-Wmaybe-uninitialized]
   37 |     dp[u][fl] = min(dp[u][fl], w+sol(v,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...