|
0 / 0 / 0
Регистрация: 15.10.2019
Сообщений: 18
|
||||||
Нужно разобраться с программой по динамическому программированиию про кузнечика и монеты18.12.2019, 09:01. Показов 21344. Ответов 11
Метки нет (Все метки)
Помогите пожалуйста разобраться.
Задание: Ограничение по времени, сек 2 Ограничение по памяти, мегабайт 64 Кузнечик прыгает по столбикам, расположенным на одной линии на равных расстояниях друг от друга. Столбики имеют порядковые номера от 1 до N . В начале Кузнечик сидит на столбике с номером 1. Он может прыгнуть вперед на расстояние от 1 до K столбиков, считая от текущего. На каждом столбике Кузнечик может получить или потерять несколько золотых монет (для каждого столбика это число известно). Определите, как нужно прыгать Кузнечику, чтобы собрать наибольшее количество золотых монет. Учитывайте, что Кузнечик не может прыгать назад. Входные данные В первой строке вводятся два натуральных числа: N и K ( 2 ≤ N , K ≤ 10000 ), разделённые пробелом. Во второй строке записаны через пробел N - 2 целых числа – количество монет, которое Кузнечик получает на каждом столбике, от 2-го до N - 1 -го. Если это число отрицательное, Кузнечик теряет монеты. Гарантируется, что все числа по модулю не превосходят 10000. Выходные данные В первой строке программа должна вывести наибольшее количество монет, которое может собрать Кузнечик. Во второй строке выводится число прыжков Кузнечика, а в третьей строке – номера всех столбиков, которые посетил Кузнечик (через пробел в порядке возрастания). Программа:
и еще, не понимаю как сделать так, чтоб программа соответствовала ограничениям в 2 сек, и 64Мб
0
|
||||||
| 18.12.2019, 09:01 | |
|
Ответы с готовыми решениями:
11
Нужно разобраться с программой дешифрование текста смещением, хотя бы подробные комментарии, очень нужно Нужно разобраться с программой Нужно разобраться с программой |
|
0 / 0 / 0
Регистрация: 15.10.2019
Сообщений: 18
|
|
| 18.12.2019, 10:04 [ТС] | |
|
именно, только эта информация не привела меня к ее решению. после длительного нахождения в больнице нужно срочно сдать образовавшиеся хвосты. с остальными работами вроде все ок, а вот эту выполнить не могу. завтра уже нужно сдавать (
0
|
|
|
|
||
| 18.12.2019, 11:16 | ||
|
VekYchis,
Понимаете, это задачи нетривиальные, над ними думать надо. Так что "сделайте за меня" на форуме не прокатит. Простые вопросы - да, ДП - нет.
0
|
||
|
0 / 0 / 0
Регистрация: 15.10.2019
Сообщений: 18
|
|
| 18.12.2019, 16:13 [ТС] | |
|
естественно и даже прекрасный ролик https://www.youtube.com/watch?v=iKj-xI4enLw с разбором этой задачи был просмотрен, только с питоном все настолько туго, что не представляю себе как написать эту программу. поэтому и прошу о помощи. из ролика выходит, что вся программа умещается в 1,5-2 десятка строк, только вот найти варианты ее решения на питоне не удается, а за три дня изучить язык на должном уровне невозможно, увы.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2019
Сообщений: 18
|
||||||
| 18.12.2019, 16:27 [ТС] | ||||||
|
пока удалось сделать так:
0
|
||||||
|
|
|
| 18.12.2019, 16:40 | |
|
У вас поиск максимума на каждой итерации? Это неправильно. Максимум должен уже быть в предыдущей ячейке массива или в небольшой фиксированном количестве ячеек (две, к примеру).
Именно для этого вы заполняете массив с начала и до конца. Пригодится описание, что в массивах d и a. Ну и, конечно, "ругается на" - это несколько неинформативно. Добавлено через 2 минуты VekYchis, а, прочитал внимательнее. У вас будет поиск по k ячейкам. То есть, для заполнения i-й ячейки массива будет поиск по (i-k, i-1). (Возможно, с поправкой на единичку, тут сами посмотрите). Добавлено через 43 секунды В целом вы на верном пути.
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2019
Сообщений: 18
|
||||||
| 18.12.2019, 18:43 [ТС] | ||||||
|
так это будет выглядеть на с++. есть ли какие-то программы, позволяющие переконвертировать это в питон?
0
|
||||||
|
|
|
| 19.12.2019, 11:12 | |
|
VekYchis, ¯\_(ツ)_/¯
Добавлено через 8 минут VekYchis, переконвертировать, конечно, можно, хотя бы "в лоб", но это не спортивно. Подумайте, какой катарсис будет, когда вы самостоятельно поймёте идею.
0
|
|
|
|
|
| 20.12.2019, 12:35 | |
|
Идея алгоритма:
Пусть collected - наш массив ВОЗМОЖНЫХ МАКСИМУМОВ собранных монет. От 0 до N, т. е. N+1 штука, на i-й позиции - возможный максимум на i-м столбике. В нулевой позиции - 0. Остальные будем заполнять. Нас интересует последнее значение. Массив price - сколько монет на i-м столбике. Тогда: collected[i+1] = max(по collected от i-k до i-1)+price[i+1]. (При этом надо учесть, что i-k может быть <0, поправочку сами сделаете.) И, вооружившись этой формулой, заполняем collected от 1 до конца.
0
|
|
| 20.12.2019, 12:35 | |
|
Помогаю со студенческими работами здесь
12
Задача про Кузнечика Задача про кузнечика задача про кузнечика Нужно разобраться с программой ПФР Нужно разобраться с программой C++ (Фрактальное сжатие) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|