|
1 / 1 / 0
Регистрация: 10.02.2016
Сообщений: 43
|
||||||||||||||||
Решить задачу методом рекурсивного перебора с возвратом22.05.2016, 01:52. Показов 12308. Ответов 27
Метки нет (Все метки)
В Волшебной стране используются монетки достоинством A1, A2,..., AM. Волшебный человечек пришел в магазин и обнаружил, что у него есть ровно по две монетки каждого достоинства. Ему нужно заплатить сумму N. Напишите программу, определяющую, сможет ли он расплатиться без сдачи.
Входные данные На вход программы сначала поступает число N (1 <= N <= 109), затем - число M (1 <= M <= 15) и далее M попарно различных чисел A1, A2,..., AM (1 <= Ai <= 109). Выходные данные Сначала выведите K - количество монет, которое придется отдать Волшебному человечку, если он сможет заплатить указанную сумму без сдачи. Далее выведите K чисел, задающих достоинства монет. Если решений несколько, выведите вариант, в котором Волшебный человек отдаст наименьшее возможное количество монет. Если таких вариантов несколько, выведите любой из них. Если без сдачи не обойтись, то выведите одно число 0. Если же у Волшебного человечка не хватит денег, чтобы заплатить указанную сумму, выведите одно число -1 (минус один). Пример ВХОДНЫЕ ДАННЫЕ
0
|
||||||||||||||||
| 22.05.2016, 01:52 | |
|
Ответы с готовыми решениями:
27
Разработка приложения реализующего задачу перебора с возвратом
Решить задачу симплекс-методом и написать двойственную к ней задачу |
| 23.05.2016, 15:17 | |
|
Странно. Вчера вечером я как раз реализовал такую схему отсечений, даже дополнительный накопительный суффиксальный массив сумм списка монет предварительно рассчитал для этого. Это уменьшило время на остальных тестах, но не затронуло 25-й. Может посмотрю еще вечером...
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|||||||
| 23.05.2016, 16:13 | |||||||
Вообще-то они в условии грозятся, что одна монетка может весить до миллиарда, в таком случае сумма не поместится в int. Кстати, я из-за этого отбросил вариант с суммами, а зря, оказывается, так как он-то и оказался самым быстрым! Тринадцать тестов проходит за нулевое время, в том числе и 25-й:
0
|
|||||||
| 23.05.2016, 23:21 | |||||
|
Добавлено через 7 часов 0 минут Вести с полей. Не знаю, что вчера я не учел (может поздно ночью хуже соображал), но сегодня мои отсечения без сортировки проходят все тесты за такие времена:
0
|
|||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 24.05.2016, 03:21 | |
|
0
|
|
| 24.05.2016, 03:30 | |
|
Вижу. Но позволю себе пояснить мой скептицизм. На другом примере отсечений, которые я применил в самом первом варианте решения этой задачи - а именно: если при текущем поиске мы уже набрали монет больше, чем при текущем промежуточном оптимальном решении - нам надо прекращать поиск. Верная оптимизация? Да, верная. Будет хорошо работать? Да, будет. В БОЛЬШИНСТВЕ СЛУЧАЕВ. То есть, мы оптимизируем средний набор входных данных. Но всегда можно подобрать такой набор, при котором наши решения будут получаться с каждым разом все лучше и лучше, и на этих данных эта оптимизация не сработает. Так нужна ли она? В боевом коде - я считаю, да. Но в общем случае асимптотика алгоритма не изменится, ибо считается по худшему случаю. В последующих кодах я эту оптимизацию НЕ ПРИМЕНЯЛ.
Так и с сортировкой здесь, имхо. Есть алгоритмы, в которых очевидно и доказывается, что сортировка улучшает асимптотику в любом случае. даже наихудшем. В данном алгоритме я этого не вижу, хотя и утверждать отсутствие этого не берусь. А что в 25 тесте звезды и данные так сошлись, что сортировка помогла - ну.... я бы сказал, что это в каком-то смысле нечестные тесты. ЗЫ а вообще я просто поленился сначала нагуглить как делать сортировку массива по убыванию с использованием своей функции-компаратора Ну и надеялся на то, что не будет подтасовочных тестов под определенные условия и методы...
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 24.05.2016, 03:37 | ||
|
0
|
||
| 24.05.2016, 03:43 | |
|
90 + 10 единиц или 50 + 50... А еще на может быть надо набрать маленькую сумму... Хотя тут крупные отсекаются сразу, вы правы. Но если взять пример всех монет разного близкого и четного номинала, и набирать сумму на 1 меньше их удвоенной суммы - то тут хоть обсортируйся - придется все перебрать. Хотя здесь отлично помогает отсечение по оставшейся накопительной сумме... В общем, мне пока не все так очевидно.
0
|
|
|
0 / 0 / 0
Регистрация: 12.08.2022
Сообщений: 9
|
|
| 05.10.2023, 11:55 | |
|
_Ivana,
Здравствуйте. Подскажите пожалуйста Кто Нибудь, как изменить код из этой ветки что бы нашло за приемлемые время результат для: input: сумма 7260, кол - во монет 120 Список всех монет: 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 Запустил Ваш код, М = 50 заменил на М = 120, уже 2 часа пытается, ничего не выводит на экран. Пожалуйста ??? Большое Спасибо за Ваш ответ
0
|
|
| 05.10.2023, 11:55 | |
|
Решить систему уравнений методом перебора Решить задаче о рюкзаке методом полного перебора через рекурсию Решить задачу методом золотого сечения и методом деления интервала пополам и написать программу на Pascal Решить задачу методом моделирования Решить задачу методом Галеркина Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|