Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2016, 07:39   #1
vulpio
Новичок
Джуниор
 
Регистрация: 20.11.2016
Сообщений: 2
По умолчанию Алгоритм для просчета наиболее выгодной скидки

Есть 5 типов телефонов. Если покупаешь 2 разных то получаешь скидку в 5%, если 3 то 10%, если 4 то 20%, а если 5 разных то 25%. К примеру, если покупаешь 8 телефонов, 2 из которых одного типа, 2 второго, 2 третьего, 1 четвертого и 1 пятого, то наилучшая цена получится если использовать скидку при покупки 4-х одинаков телефонов два раза(4*8*0.8+4*8*0.8), а не скидку 5 разных и 3 разных телефонов.(5*8*0.75+3*8*0.1).

Подскажите пожалуйста, какой алгоритм будет самым оптимальным? Поскольку вариант, где нужно подсчитывать все комбинации, а потом выбирать самую оптимальную будет ужасным, если телефонов будет, скажем 20 штук. Спасибо.
vulpio вне форума Ответить с цитированием
Старый 20.11.2016, 18:27   #2
Dekay
Пользователь
 
Регистрация: 21.06.2016
Сообщений: 65
По умолчанию

Код:
vector<double> dp(n+1);

vector<pair<int, int> > sale;
sale.pb(mp(2, 5));
sale.pb(mp(3, 10));
sale.pb(mp(4, 20));
sale.pb(mp(5, 25));

for(int i = 1; i <= n; i++) {
    dp[i] = dp[i-1]+1;
    forn(j, sz(sale)) {
        if (i >= sale[j].F) {
            dp[i] = min(dp[i], dp[i-sale[j].F]+sale[j].F*(100-sale[j].S)*1.0/100);
        }
    }
    cout << dp[i] << endl;
}

cout << dp[n] << endl;
Dekay вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой алгоритм сортировки сравнениями признается лучшим и наиболее эффективным? bayanist17 Общие вопросы C/C++ 1 18.06.2014 16:01
Оптимальный алгоритм - получить список из N наиболее часто встречающихся элементов vedro-compota Общие вопросы по программированию, компьютерный форум 34 09.12.2012 13:11
Алгоритм поиска наиболее подходящих LynXzp Общие вопросы C/C++ 18 06.12.2012 01:20
Формула для просчета выпавших шаров лотереи zzibn Microsoft Office Excel 70 20.06.2012 23:24
Программа для просчета киломметража ИринаНовичок Microsoft Office Access 1 20.03.2012 21:45