제출 #850597

#제출 시각아이디문제언어결과실행 시간메모리
850597vjudge1Knapsack (NOI18_knapsack)C++14
100 / 100
38 ms5200 KiB
#include<bits/stdc++.h> #define int long long #define ii pair<int,int> #define ff first #define ss second #define all(x) x.begin(), x.end() using namespace std; const int maxn = 1e4 + 5, mod = 1e9 + 7; int n, m, q, ans; int dp[maxn]; vector<ii> a, sw[maxn]; signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> m >> n; for (int i = 1; i <= n; i++) { int val, w, cap; cin >> val >> w >> cap; sw[w].emplace_back(val, cap); } for (int i = 1; i <= m; i++) { sort(all(sw[i]), greater<ii>()); int can = m / i; for (auto p : sw[i]) { int u = p.ff, v = p.ss; int take = min(can, p.ss), bit = 1; can -= take; while (take) if (take >= bit) take -= bit, a.emplace_back(bit * p.ff, bit * i), bit *= 2; else break; if (take) a.emplace_back(take * p.ff, take * i); if (can == 0) break; } } for (int i = 1; i <= m; i++) dp[i] = -1e18; for (auto p : a) { for (int i = m; i >= p.ss; i--) dp[i] = max(dp[i], dp[i - p.ss] + p.ff), ans = max(ans, dp[i]); } cout << ans; }

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

knapsack.cpp: In function 'int main()':
knapsack.cpp:31:17: warning: unused variable 'u' [-Wunused-variable]
   31 |             int u = p.ff, v = p.ss;
      |                 ^
knapsack.cpp:31:27: warning: unused variable 'v' [-Wunused-variable]
   31 |             int u = p.ff, v = p.ss;
      |                           ^
#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...