Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
apple1988
1 / 1 / 0
Регистрация: 29.03.2011
Сообщений: 24
#1

Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза. - C++

04.04.2011, 11:38. Просмотров 2748. Ответов 2
Метки нет (Все метки)

Имеется N камней веса А1,А2,...,АN.
Необходимо разбить их на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза. Если этого сделать нельзя, то указать это.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2011, 11:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза. (C++):

Распределить камни в две кучи так, чтобы разность весов этих двух куч была минимальной
Ограничение времени: 1.0 секунды Ограничение памяти: 64 МБ У вас есть...

Распределить камни в две кучи так, чтобы модуль разности весов этих двух куч был минимальным
Доброго времени суток! Требуется программу, которая распределит камни в две...

Заполнить массив значениями 0 и 1 случайным образом, но чтобы нулей было в два раза больше, чем единиц
Здравствуйте! Не могу решить задачу, есть ли идеи как это можно сделать?...

Разбить камни на две кучи так, чтобы вес одной кучи не превышал веса другой более критической массы
Здраствуйте,уважаемые програмисты!Проблемы с задачкой Условие:Есть куча...

Напишите программу, которая распределит камни в две кучи так, что разность весов этих двух куч будет минимальной
Здравствуйте! Пытаюсь решить задачу...

Разложить камни в 2 кучи так, что разность весов двух куч была минимальной
Разложить камни в 2 кучи так, что разность весов двух куч была минимальной....

2
IrineK
Заблокирован
04.04.2011, 13:00 #2
Лучший ответ Сообщение было отмечено apple1988 как решение

Решение

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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#define N 10
using namespace std;
 
void create_lot(int stones[]) //создание массива весов камней
{
    cout<<N<<" камней в куче. Их вес:\n";
    for(int i=0;i<N;i++)
    {cout<<(i+1)<<": ";
    cin>>stones[i];}
}
 
void arrange_lot(int stones[]) //сортировка по убыванию
{
int i,j,cur;
for(i=0;i<N-1;i++)
    for(j=i+1;j<N;j++)
        if(stones[i]<stones[j])
        {   cur=stones[i];
            stones[i]=stones[j];
            stones[j]=cur;  }
}
 
void arrange_bags(int stones[]) //создание двух куч, как можно более близких по весу
{
int sum1=0, sum2=0, k1=0, k2=0, i;
int bag1[N-1],bag2[N-1];
for(i=0;i<N;i++)
{
    if(sum1<=sum2)
    {   bag1[k1]=stones[i];
        sum1+=stones[i];
        k1++;}
    else
    {   bag2[k2]=stones[i];
        sum2+=stones[i];
        k2++;}
}
if(1.0*sum1/sum2 <=1.5)
{   cout<<"\nКуча 1: ";
    for(i=0;i<k1;i++)
        cout<<bag1[i]<<"  ";
    cout<<"\nВес 1: "<<sum1<<endl;
    cout<<"\nКуча 2: ";
    for(i=0;i<k2;i++)
        cout<<bag2[i]<<"  ";
    cout<<"\nВес 2: "<<sum2<<endl;
}
else cout<<"Вес различается больше чем в 1,5 раза\n";
}
 
int main()
{
    setlocale(LC_ALL,"");
    int lot[N];
    create_lot(lot);
    arrange_lot(lot);
    arrange_bags(lot);
 
    cin.sync(); cin.get();
    return 0;
}
1
Миниатюры
Необходимо разбить камни на две кучи таким образом, чтобы веса куч отличались не более чем в 1.5 раза.  
apple1988
1 / 1 / 0
Регистрация: 29.03.2011
Сообщений: 24
04.04.2011, 14:27  [ТС] #3
большое спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2011, 14:27
Привет! Вот еще темы с решениями:

Написать программу для раздела этих камней на две кучи так, чтобы разность весов этих куч была бы минимальной
У нас имеется N камней с весами w1, w2, w3,…, wn. Написать программу, которая...

Необходимо ввести массив таким образом,чтобы выводились отрицательные значения
Помогите пожалуйста!! Необходимо ввести массив таким образом,чтобы выводились...

Создать static таким образом, чтобы его цвет был таким же, как у окна
Нужно создать метку таким образом чтобы цвет метки был таким же как у окна....

Найти наибольшее число в массиве, которое повторяется по крайней мере 2 раза, но не более чем 3 раза
подскажите с задачкой пожалуйста Найти наибольшее число в массиве, которое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru