ზურგჩანთის ამოცანა: განსხვავება გადახედვებს შორის

ნავიგაციაზე გადასვლა ძიებაზე გადასვლა
<source lang="cpp">
#include <iostream>
#include <string>
 
using namespace::std;
long long weight[100], value[100], dp[100005];
int main() {
// ნივთების რაოდენობა - n
int n, w;
// წონის ლიმიტი - w
cin >> n >> w;
for (int in, = 0w; i < n; i++) {
cin >> weight[i]n >> value[i]w;
for (int i = 0; i < n; i++) {
cin >> nweight[i] >> wvalue[i];
}
for (int ji = w0; ji >=< weight[i]n; j--i++) {
for (int j = w; j >= weight[i]; j--){
// თითოეული წონისთვის უნდა გამოვთვალოთ მაქსიმალური ჯამური
// ღირებულება. როგორც ვახსენეთ, ნივთი ან უნდა ავიღოთ, ან არა.
// რადგან უდიდესი ღირებულება გვჭირდება, უნდა გავაკეთოთ ყველაზე
// მომგებიანი არჩევანი.
dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
}
}
for (int i = 0; i < n; i++) {
cout << dp[w];
for (int j = w; j >= weight[i]; j--){
return 0;
dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);
}
}
cout << dp[w];
return 0;
}
</source>
481

რედაქტირება

სანავიგაციო მენიუ