Задача №1239. Валютные махинации
Разбор добавил Михаил Пядеркин
Очевидно, что нужно всегда менять всю сумму денег. Для решения используем метод динамического программирования. ans[i] пусть обозначает максимальную сумму в рублях, которую можно получить за первые i дней. Пересчет очень простой: \(ans[i]=\max\Bigl(ans[i-1],\max\limits_{1\le j<i}\bigl(\max(ans[j]\cdot\frac{e[i]}{e[j]},ans[j]\cdot\frac{d[i]}{d[j]})\bigr)\Bigr)\). (ans[i] это либо ans[i-1] (если мы ничего не делаем с нашими деньгами), либо в мы поменяем деньги в некоторый j-ый день в доллары и в i-ый день поменяем обратно, либо аналогично с евро)Известен курс двух валют (доллары и евро) на последовательность дней. Требуется максимизировать количество денег, если каждый день разрешается переводить деньги в любую валюту.
Сдать: для сдачи задач необходимо войти в систему
1143
statement