Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
#1

Интеречная задача о салоне красоты

13.04.2013, 14:46. Просмотров 1037. Ответов 16
Метки нет (Все метки)

В салон красоты пришло n девушек. Каждая из них должна посетить парикмахера и косметолога. У каждого она проводит по m часов. За которое наименьшее время k сотрудников салона красоты смогут обслужить всех девушек, если каждый сотрудник может выполнять функции как косметолога, так и парикмахера?

Входные данные: три натуральных числа k, m, n (все числа не больше 10 000).
Исходные данные: одно число - минимальное время в часах, которое требуется для обслуживания всех девушек.

Примеры:
I: 1 1 1
O: 2
I: 2 2 1
O: 4

Простое решение не подходит:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
int main(void)
{
    long k, m, n; // косметологов, часов у каждого, девушек
    cin>>k>>m>>n;
    cout<<2 * n / k * m;
    return 0;
}
Результат на втором примере неверен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 14:46
Ответы с готовыми решениями:

Салон красоты. За который наименьшее время k сотрудников салона красоты смогут обслужить всех девушек?
В салон красоты пришло n девушек. Каждая из них должна посетить парикмахера и...

Клиентки в салоне красоты
1-задание: В салоне красоты каждая клиентка делает либо прическу, либо макияж,...

Непростая задачка в салоне красоты
Моих мозгов не хватает на это В салоне красоты работает X (7) мастеров,...

Определить количество TV в видео салоне с диагональю экрана больше 5см
Всреде TurboPaskal составить и отладить программу,которая позволяет определить...

Конкурс красоты
Есть такая задача: Производится отбор девушек на участие в конкурсе красоты....

16
Xipxop
481 / 9 / 6
Регистрация: 28.12.2011
Сообщений: 151
13.04.2013, 15:04 #2
все числа не больше 10 000
long k, m, n;
Глупая растрата данных. Используй тогда short или обычный.


Ты скобки в действии забыл расставить:
C++
1
cout<<2 * n / k * m;
C++
1
cout<<(2 * n) / (k * m);
0
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
13.04.2013, 15:15  [ТС] #3
Цитата Сообщение от Xipxop Посмотреть сообщение
Глупая растрата данных. Используй тогда short или обычный.
В данной задаче на 6 байт памяти как-то пофиг.
Цитата Сообщение от Xipxop Посмотреть сообщение
cout<<(2 * n) / (k * m);
I: 2 2 1
O: 0
Должно выйти 4.
0
Xipxop
481 / 9 / 6
Регистрация: 28.12.2011
Сообщений: 151
13.04.2013, 15:20 #4
cout<<(2 * n) / (k * m);
I: 2 2 1
O: 0
Должно выйти 4.
Вы вообще правильно считаете?
k=2;m=2;n=1;
(2*1)/(2*2)=2/4=0.5 или 30 минут.
0
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
13.04.2013, 15:50  [ТС] #5
Цитата Сообщение от Xipxop Посмотреть сообщение
Вы вообще правильно считаете?
k=2;m=2;n=1;
(2*1)/(2*2)=2/4=0.5 или 30 минут.
Те примеры из условия, задача олимпиадная.
0
Xipxop
481 / 9 / 6
Регистрация: 28.12.2011
Сообщений: 151
13.04.2013, 16:03 #6
Примеры:
I: 1 1 1
O: 2
I: 2 2 1
O: 4
Результат на втором примере неверен.

I: 2 2 1
O: 0
Должно выйти 4.
Определитесь, что вы считаете правильным ответом, а что нет, с олимпиадными задачами незнаком, да и с логикой математики, (хоть и сам математик) иногда не понимаю.
0
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
13.04.2013, 16:05  [ТС] #7
Цитата Сообщение от Xipxop Посмотреть сообщение
Определитесь, что вы считаете правильным ответом, а что нет, с олимпиадными задачами незнаком, да и с логикой математики, (хоть и сам математик) иногда не понимаю.
Мне нужно чтобы результаты совпадали с примерами в первом сообщении, как они считались я не знаю.
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
14.04.2013, 03:31 #8
A1exSun, пробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
int main(void)
{
    long k, m, n, res; // косметологов, часов у каждого, девушек
    cin>>k>>m>>n;
    res=n/k*2*m;
    if(n%k) res+=2*m;
    cout<<res;
    return 0;
}
1
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 770
14.04.2013, 04:08 #9
я думаю надо радикально решать

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
 
using namespace std;
 
int main(void)
{
    long k, m, n, res;
    cin>>k>>m>>n;
    cout<<m*(2*(n/k)+(n%k!=0)+((n%k>k/2.0)||(n<k)));
    return 0;
}
Добавлено через 17 минут
valeriikozlov,

C++
1
2
    res=n/k*2*m;
    if(n%k) res+=2*m;
это точно не верно

на числах 2 2 3 выдаёт 8, такого быть не может
1
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 770
14.04.2013, 04:23 #10
Цитата Сообщение от valeriikozlov Посмотреть сообщение
вход: 3 2 7

abit, Ваш код выдает 10, а должно быть 12
нет, 10... там просят МИНИМАЛЬНОЕ число часов

Добавлено через 14 минут
вот я нарисовал - при 7 девушках, 3 косметологах и по 2 часа на операцию...



за 10 часов все обслуживаются и даже один косметолог отдыхает последние два часа...

а по вашему способу все 3 должны пахать 12 часов?
1
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
14.04.2013, 07:08 #11
C++
1
Tmin = ceil(n/k) * 2 * m;
Цитата Сообщение от abit Посмотреть сообщение
нет, 10... там просят МИНИМАЛЬНОЕ число часов
вот я нарисовал - при 7 девушках, 3 косметологах и по 2 часа на операцию...
Вы не учитываете, что одной девушке невозможно одновременно оказывать услуги и парикмахера, и косметолога. Т.е. на самом деле обслуживать надо не 2n раз по m часов, а n раз по 2m часов.
1
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
14.04.2013, 12:57  [ТС] #12
Всем спасибо. К сожалению, лавочка уже закрыта и проверять теперь негде
0
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 770
14.04.2013, 14:16 #13
Вы не учитываете, что одной девушке невозможно одновременно оказывать услуги и парикмахера, и косметолога. Т.е. на самом деле обслуживать надо не 2n раз по m часов, а n раз по 2m часов.
что за ерунда? где вы увидели в моём алгоритме, чтобы оказывалось одной девушке обе услуги одновременно?
Вы вообще читали мой алгоритм или слово просто вставить нужно
это как раз у меня учтено, посмотрите внимательно рисунок, там верхняя часть кружка - прарикмахер, нижняя - косметолог, никакой не оказывается две услуги вместе одновременно


а это
C++
1
ceil(n/k) * 2 * m;
тоже не верно
1
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
14.04.2013, 14:32 #14
Цитата Сообщение от abit Посмотреть сообщение
а это
ceil(n/k) * 2 * m;
тоже не верно
Чем докажете?
0
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 770
14.04.2013, 14:57 #15
Цитата Сообщение от Mr.X Посмотреть сообщение
Чем докажете?
а чего там доказывать?
скажите что она возвращает на 2 2 1, у меня под рукой нет компилятора, поэтому написал тут - http://codepad.org/J1QpIEvj

и что она мне вернула? 0... хм... за 0 часов... какая неожиданность...
0
Mr.X
Эксперт С++
3178 / 1705 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
14.04.2013, 15:13 #16
Цитата Сообщение от abit Посмотреть сообщение
и что она мне вернула? 0... хм... за 0 часов... какая неожиданность...
n должно быть double.
0
abit
272 / 271 / 83
Регистрация: 03.02.2013
Сообщений: 770
14.04.2013, 15:26 #17
Цитата Сообщение от Mr.X Посмотреть сообщение
n должно быть double.
да ради бога, хоть все числа сделаем double - http://codepad.org/lhPCYrPY

на примере 3 2 7, который я нарисовал - возвращает 12, я нарисовал как это сделать за 10

хорошо, возьмём пример попроще 2 1 3
2 косметолога, 3 девушки по часу на каждую... что у вас возвращается - http://codepad.org/223IQAaa
возвращается 4... это ложь и провокация, достаточно трёх часов, смотрите

сначала стрегут первых двоих (час 1), потом одну из них отправляют гулять, а второй делают косметику и стрегут третью (час 2), потом первой и третьей делают косметику (3 час)

всё... все трое подстрижены и с косметикой, откуда у вас ещё один час взялся?
0
14.04.2013, 15:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 15:26

Салон красоты
Всем весёлой пятницы!!! Я тут возомнил себя типа стилистом и возжаждал...

Салон красоты
В салон краси прийшло n дівчат. Кожна з них повинна відвідати перукаря і...

Салон красоты
Здравствуйте!Нужно срочно написать сайт на тему &quot;Салон красоты Милена&quot;...очень...


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

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

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