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

Разложить камни на 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... подробнее

Показать сообщение отдельно
Kuzia domovenok
2060 / 1905 / 174
Регистрация: 25.03.2012
Сообщений: 6,564
Записей в блоге: 1
22.04.2012, 13:14
тебе при полном переборе предстоит перебрать 2^18 вариантов
или 262144, для каждого найти вес И того
262144*18=4718592 действий это минимум
если на нахождение одного варианта у тебя одна операция тратится
пять миллионов меньше чем за секунду?

Добавлено через 16 минут
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
37
38
39
40
int solve(int* a, int N){
int s=0;
int i;
for (i=0; i<N; i++)
 s+=a[i];
int* t1, t2, t3;
int sz=s/2+s%2;
int* t1=new int[sz+1];
int* t2=new int[sz+1];
for (i=0; i<sz; i++)
{
    t1[sz]=0; t2[sz]=0;
}
for (i=0; i<N; i++){
 for (j=0; j<=sz; j++){
    if (j-a[i]>=0){
         t2[j]=max(t1[j], t1[j-a[i]]+a[i]);
       }
       else
         t2[j]=t1[j];
  }
t3=t2;
t2=t1;
t1=t3;
}
delete[] t1;
delete[] t2;
 
 
int a, dsz, c;
a=s-t2[sz];
if (a>t2[sz]) dsz=a-t2[sz];
else dsz=t2[sz]-a;
a=s-t2[sz-1];
if (a>t2[sz-1]) c=a-t2[sz];
else c=t2[sz]-a;
 
if (dsz<c) return dsz;
else return c 
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.