

có n món quà , mỗi món có khối lượng a[i].thầy minh chỉ mang được tối đa khối lượng t làm C++
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, t;
cin >> n >> t;
vector<int> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
vector<bool> dp(t + 1, false);
dp[0] = true;
for (int i = 0; i < n; i++) {
for (int j = t; j >= a[i]; j--) {
if (dp[j - a[i]]) {
dp[j] = true;
}
}
}
for (int j = t; j >= 0; j--) {
if (dp[j]) {
cout << j;
break;
}
}
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n, t;
cout << "Nhập số lượng món quà: ";
cin >> n;
cout << "Nhập khối lượng tối đa thầy Minh có thể mang: ";
cin >> t;
vector<int> a(n);
cout << "Nhập khối lượng từng món quà: ";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a.begin(), a.end(), greater<int>());
int totalWeight = 0;
int count = 0;
for (int i = 0; i < n; i++) {
if (totalWeight + a[i] <= t) {
totalWeight += a[i];
count++;
}
}
cout << "Số món quà thầy Minh có thể mang: " << count << endl;
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin