Submission #533149

#TimeUsernameProblemLanguageResultExecution timeMemory
533149DanerZeinRoad Closures (APIO21_roads)C++14
14 / 100
2097 ms84156 KiB
#include "roads.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> ii; typedef vector<ii> vi; typedef pair<ii,ll> iii; const ll MAX=1e16; const int MAX_N=2e3+10; bool vis[MAX_N]; vector<vi> G; int n,ti; bool orden(ii a,ii b){ return -a.first+a.second<-b.first+b.second; } ll dp[MAX_N][MAX_N]; ll knap(int u,int p,int k){ if(dp[u][k]!=-1) return dp[u][k]; vector<ii> op; vector<iii> aux; ll s=0; for(auto &v:G[u]){ if(v.first!=p){ if(k>=1){ op.push_back(ii(knap(v.first,u,ti)+v.second,knap(v.first,u,ti-1))); int t=op.size()-1; aux.push_back(iii(op[t],v.first)); } s+=knap(v.first,u,ti)+v.second; } } sort(op.begin(),op.end(),orden); int c=0; for(int i=0;i<op.size();i++){ if(i<k && -op[i].first+op[i].second<=0) s+=(-op[i].first+op[i].second); } return dp[u][k]=s; } std::vector<long long> minimum_closure_costs(int N, std::vector<int> U, std::vector<int> V, std::vector<int> W) { n=N; vector<ll> res; //vector<iii> ed; G.resize(n+1); for(int i=0;i<n-1;i++){ int a=U[i],b=V[i],w=W[i]; G[a].push_back(ii(b,w)); G[b].push_back(ii(a,w)); //ed.push_back(iii(ii(a,b),w)); } for(int i=0;i<n;i++){ ti=i; memset(dp,-1,sizeof dp); res.push_back(knap(0,0,i)); } return res; }

Compilation message (stderr)

roads.cpp: In function 'll knap(int, int, int)':
roads.cpp:34:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |   for(int i=0;i<op.size();i++){
      |               ~^~~~~~~~~~
roads.cpp:33:7: warning: unused variable 'c' [-Wunused-variable]
   33 |   int c=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...