Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2011, 11:14   #1
Lucid
 
Регистрация: 31.10.2011
Сообщений: 4
По умолчанию Задача о рюкзаке.

Задача о рюкзаке.
По данному набору из n предметов стоимостями v1,v2,...,vn и весами w1,w2,...,wn (действительные числа, получаемые из входного файла) найти поднабор (с учетом того, что нельзя брать один предмет несколько раз) такой, что его стоимость будет максимальна, среди всех поднаборов веса не более W.
Вывести ответ в выходной файл.
Помогите написать пожалуйста..мне нужен сам код...пожалуйста пожалуйста
Lucid вне форума Ответить с цитированием
Старый 01.11.2011, 16:38   #2
voyager2011
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 18
По умолчанию

Нужен алгоритм сортировки с критерием для V по максимуму, последующий отбор производить по критерию W=<n. Сначала нужно создать отсортированный массив, выборку делать в другой с обязательной проверкой повторения V.
И какой вам код надо? Консольный?
Вот пример одной программки, попробуйте сделать на ее основе:
Код:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <fstream>
#include <iomanip>

using namespace std;
int main()
{
char buff[80];
vector<string>s;
int a=0;
ifstream infile;
infile.open("rhyme");
while(1){
	infile.getline(buff, sizeof(buff));
	if(infile.eof()) break;
	s.push_back(buff);
}
//sort(s.begin(), s.end());
for(int i=0; i<s.size(); i++)
	cout<<s[i]<<endl;
infile.close();
//cin>>a;
//int a[100];
ofstream out("digs");
for(int i=0; i<s.size(); i++)
out<<setw(3)<<s[i]<<endl;
out.close();
}
Здесь даны простые операции записи и чтения файла и работа с массивами.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 01.11.2011 в 16:51.
voyager2011 вне форума Ответить с цитированием
Старый 08.11.2011, 20:04   #3
GenaVenglovskiy
 
Регистрация: 11.04.2011
Сообщений: 8
По умолчанию

Я бы рекурсивно перебрал все возможные варианты.
Если отсортировать - можем взять предмет наибольшей массы и низкой стоимости.

Посмотри книги по олимпиадным задачам в разделе рекурсия.
GenaVenglovskiy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача о рюкзаке VadEr Помощь студентам 6 16.09.2011 20:44
Задача минимизации дисбаланса на линии сборки (задача минимакса) LenZab Microsoft Office Excel 13 13.03.2011 22:51
Ручной режим Задачи о Рюкзаке в Delphi oblachko Помощь студентам 1 07.06.2009 23:26