Submission #1167260

#TimeUsernameProblemLanguageResultExecution timeMemory
1167260constnodeKnapsack (NOI18_knapsack)C++20
37 / 100
1 ms528 KiB
//CHATGPT nin kodu test ucun atilmisdir #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int S, N; cin >> S >> N; // S: sepetin alabileceği maksimum ağırlık, N: ürün türü sayısı // dp[w] : ağırlığı w olan sepet için elde edilebilecek maksimum değer vector<int> dp(S + 1, 0); for (int i = 0; i < N; i++) { int V, W, K; cin >> V >> W >> K; // V: değer, W: ağırlık, K: kopya sayısı // Binary splitting yöntemiyle her ürünü 0-1 knapsack alt problemlere bölüyoruz. int num = K; int count = 1; while (num > 0) { int take = min(count, num); int value = take * V; int weight = take * W; // 0-1 knapsack DP güncellemesi: Ters yönde döngü (her öğeyi yalnızca bir kere kullanmak için) for (int w = S; w >= weight; w--) { dp[w] = max(dp[w], dp[w - weight] + value); } num -= take; count *= 2; } } cout << dp[S] << endl; return 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...