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

Разложить камни на 2 кучки так, чтобы разница масс этих кучек была минимальной. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа вводит натуральное число N и вычисляет выражение http://www.cyberforum.ru/cpp-beginners/thread554834.html
Помогите реализовать программку. Программа вводит натуральное число N и вычисляет выражение: ( всего в выражении N корней ) Вот что у меня имеется на данный момент: #include <vcl.h>...
C++ Выручайте, объяснения внутри:) Стационарный комп, после скачка напряжения, отказывается работать(на нем стояла хр-шка и работал С++ Builder 6), сейчас пользуюсь ноутом, на нем не робит билдер(в чем проблем я хз) вот ссылка... http://www.cyberforum.ru/cpp-beginners/thread554829.html
Сделать реверсию C++
Надо сделать реверсию самой длиной убывающей последовательности в массиве, вот и не знаю как эти процедуры сделать, подскажите, вот что есть #include <iostream> #include <ctime> #include <cstdlib>...
Вывести наименование товара и конечную дату его использования C++
ребят помогите, очень прошу struct tovar {char naim ; TDateTime datapr; int srokgod; // срок годности переменная какого типа???? float price; int nomerser; }; tovar tv; // naim...
C++ Указатели на указатель http://www.cyberforum.ru/cpp-beginners/thread554809.html
#include <iostream> void print(char** p) { while(*p) std::cout << *p++ << '\n'; //ps а потом ps ? } void main() {
C++ алгоритм удаление записей напишите мне плиз алгоритм удаление записей из базы данных из куче!! буду очень благодарен! #include "stdafx.h" #include <conio.h> #include <locale.h> #include <iostream> #include... подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.04.2012, 13:35
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
тебе при полном переборе предстоит перебрать 2^18 вариантов
или 262144, для каждого найти вес И того
262144*18=4718592 действий это минимум
если на нахождение одного варианта у тебя одна операция тратится
пять миллионов меньше чем за секунду?
Kuzia domovenok, у Вас очень плохо с математикой. Вот код:
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
#include <stdio.h>
#include <math.h>
int res, N, mas[18];
void rec(int n, int sum1, int sum2)
{
    if(n==N)
    {
        if(abs(sum1-sum2)<res)
            res=abs(sum1-sum2);
        return;
    }
    rec(n+1, sum1+mas[n], sum2);
    rec(n+1, sum1, sum2+mas[n]);
}
int main()
{
      freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
    res=2000000;
    int i;
    scanf("%d", &N);
    for(i=0; i<N; i++)
        scanf("%d", &mas[i]);
    rec(0,0,0);
    printf("%d\n", res);
 
return 0;
}
в котором реализован полный перебор. Всего действий (+ или -) в нем 2^18=262144 вариантов. Еще столько же вариантов (если често то в два раза больше, но можно написать код чтобы было столько же) - это сравнение полученного результата с имеющимся. Ни о каких
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
4718592 действий
речь не идет.
Чтобы не быть голословным я нашел эту задачу. Она здесь:
http://********/?main=task&id_task=71
Мой код прошел все тесты и показал: 0,197 секунды.
Итог: все-таки с математикой Вы не сильно дружите ).
4
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru