Форум программистов, компьютерный форум, киберфорум
Наши страницы

Задача о рюкзаке (тема: генерация всех подмножеств n по k) кому надо - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Присвоить NULL массиву http://www.cyberforum.ru/cpp-beginners/thread978733.html
Здравствуйте! Есть код: matrix(); clear(); В классе matrix объявлен указатель unsigned char* data;. В конструкторе matrix() есть строка data = NULL; Когда захожу в функцию clear, data...
C++ Программа работы со стеком подскажите пожалуйста Для решения задачи использовать стандартный тип "стек", определённый в библиотеке STL. Исходные данные можно получить как вводом с клавиатуры, так и генератором случайных чисел. (2 задача) СТЕКИ ... http://www.cyberforum.ru/cpp-beginners/thread978725.html
C++ Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n
Даны два упорядоченных набора чисел C1, C2, ..., Cn и D1, D2, ..., Dm. Соединить их в один упорядоченный массив F. Число сравнений не должно превышать m+n. Не могу понять Число сравнений не...
Дано натуральное число n. Вычислить: C++
помогите написать на С++ Дано натуральное число n. Вычислить: 1*2+2*3*4+3*4*5*6+...+n(n+1)...2n
C++ Программа работы с очередью подскажите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread978688.html
Для решения задачи использовать стандартный тип "очередь", определённый в библиотеке STL. Исходные данные можно получить как вводом с клавиатуры, так и генератором случайных чисел. (1 задача)...
C++ Есть массив из положительных чисел, допустим из 10. Нужно найти эл-ты, сумма которых будет равна определённому числу Я хотел сделать перебором с помощью рекурсивной ф-ции, но чёт не особо выходит. Помогите пожалуйста. подробнее

Показать сообщение отдельно
renme1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 3

Задача о рюкзаке (тема: генерация всех подмножеств n по k) кому надо - C++

16.10.2013, 10:31. Просмотров 444. Ответов 0
Метки (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
void main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int *M = new int[100000000];
    int *S = new int[100000000];
        __int64 w, p;
        __int64 i, j, n = 2;
        __int64 Current = 0, Max = 0, Check = 0;
    cin >> w >> p;
 
    for(i = 0; i < w; i++)
        cin >> M[i] >> S[i];
 
    for(i = 1; i <= w; i++)
        n *= 2;
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < w; j++)
        if(i & (1 << j))
        {
            Current += S[j];
            Check += M[j];
        }
        if(Check <= p && Current > Max)
        Max = Current;
        Current = 0;
        Check = 0;
    }
cout << Max;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.