제출 #1299525

#제출 시각아이디문제언어결과실행 시간메모리
1299525RgZg_LnEnKnapsack (NOI18_knapsack)C++20
73 / 100
1095 ms8704 KiB
//UPDATERA ARRAY STORLEKEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll INF=1e15; const ll MAXS=2006;//UPDATERA ARRAY STORLEKEN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1e7 ll n,ans,s,k,v,w,dp[MAXS]; vector<ll> group[MAXS]; int main(){//多重背包模板 ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>s>>n; for(int i=1;i<=n;i++){ cin>>v>>w>>k; ll now=1; while(k>=now){ k-=now; if(w*now>s){ now*=2; continue;//k big, many unnecessary } group[w*now].push_back(v*now); now*=2; } if(k){ if(w*k>s) continue; group[w*k].push_back(v*k); } } for(int i=1;i<=s;i++) sort(group[i].begin(),group[i].end(),greater<ll>()); for(int i=1;i<=s;i++){ for(int j=0;j<group[i].size();j++){ for(int k=s;k>=i;k--){ dp[k]=max(dp[k],dp[k-i]+group[i][j]); ans=max(ans,dp[k]); } } } cout<<ans<<'\n'; }
#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...