|
28 / 27 / 11
Регистрация: 12.03.2009
Сообщений: 85
|
|
Лесенка - динамическое программирование19.08.2009, 09:48. Показов 31256. Ответов 51
Метки нет (Все метки)
Здраствуйте. У меня есть одна классическая задачка про Лесенку.
Лесенка Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий. Требуется написать программу, вычисляющую число лесенок, которое можно построить из N кубиков. Входные данные Во входном файле INPUT.TXT записано натуральное число N (1 ≤ N ≤ 100) – количество кубиков в лесенке. Выходные данные В выходной файл OUTPUT.TXT необходимо вывести число лесенок, которые можно построить из N кубиков. Примеры INPUT.TXT OUTPUT.TXT 3 2 6 4 Я решил эту задачку с помощью грубого перебора и проходит тесты. Но я слышал что есть и другое эффективное решение с помощью динамическое программирование. Помогите решить.
0
|
|
| 19.08.2009, 09:48 | |
|
Ответы с готовыми решениями:
51
Динамическое программирование Динамическое программирование
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||||||
| 21.08.2009, 14:30 | ||||||
|
chelovechek, что-то маловато получается.
Мой вариант (в правильности не уверен):
cn - текущее количество кубиков, c - текущий размер нижнего слоя. (Из любого количества кубиков при нулевой ширине нельзя ничего сложить, из нуля кубиков всегда есть одна "пустая" лесенка.)
2
|
||||||
|
Почетный модератор
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||
| 21.08.2009, 14:32 | ||
Если кому интересно, последовательность примерно эта. http://www.research.att.com/~n... &go=Search
0
|
||
|
3926 / 928 / 125
Регистрация: 16.04.2009
Сообщений: 1,983
|
|
| 21.08.2009, 14:33 | |
|
chelovechek, может я не так понял задание, но я понял так что надо найти не высоту лесенки а кол-во различных комбинаций.
Вот Ваш код выдает: 3=2 4= 2 5= 2 6= 3 7= 3 8= 3 9= 3 10= 4 11= 4 12= 4 а вот как д.б.: 3 2 4 2 5 3 6 4 7 5 8 6 9 8 10 10 11 12 12 15
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||
| 21.08.2009, 14:46 | ||
|
http://www.research.att.com/~njas/sequences/?q=1%2C1%2C2%2C2%2C3%2C4%2C5%2C6%2C8%2C10%2C12%2C15%2C18%2C22 Неужели у меня правильно?..
0
|
||
|
Почетный модератор
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||
| 21.08.2009, 15:04 | ||
14-0 13-1 12-2 11-3 11-2-1 10-4 10-3-1 9-5 9-4-1 9-3-2 8-6 8-5-1 8-4-2 8-3-2-1 7-6-1 7-5-2 7-4-3 7-4-2-1 6-5-3 6-5-2-1 6-4-3-1
0
|
||
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 21.08.2009, 15:15 | |
|
Ещё 5-4-3-2
1
|
|
| 21.08.2009, 16:01 | |
|
what is a staircase? should the step width be constant for a staircase, or the only constraint is that the layer above should contain at least one unit less (or at least may not contain more)?
in other words: which of the following staircases (pyramid) are valid, and which - not, and why (bottom to the top)? 0. 5,4,1 1. 6,4,2 2. 6,4,4,2 3. 8,8,6,6,4,4,2,2
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
|
| 21.08.2009, 17:12 | |
|
0
|
|
|
Почетный модератор
64319 / 47615 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
|
||
| 21.08.2009, 18:26 | ||
|
Можно сказать количество ступенек включая верхнюю, причем ступеньки могут быть разной ширины.
Добавлено через 55 минут 30 секунд Вообще хорошее решение. Если вывести матрицу на экран, в последнем столбце как раз будет эта последовательность. http://www.research.att.com/%7... %2C18%2C22 Добавлено через 2 минуты 23 секунды
0
|
||
| 22.08.2009, 20:21 | |||||||||||
|
тогда я бы так посчитал:
0
|
|||||||||||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
| 22.08.2009, 22:33 | ||||||
|
Вывод всех вариантов для кубов от 0 до N.
Для ускорения ранее найденные значения складываются в массив ppvar.
0
|
||||||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
| 22.08.2009, 22:35 | ||||||
|
Пример вывода программы.
0
|
||||||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 22.08.2009, 22:37 | |
|
Первая таблица - это результат функции get_var( cub, width ), где cub - число кубов, которое нужно уложить, width - ограничение на ширину самого нижнего слоя.
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||||||
| 22.08.2009, 22:44 | ||||||
0
|
||||||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 23.08.2009, 13:50 | |
|
2novi4ok: если тебе трудно понять что написано - ты так и скажи что тебе именно неясно.
А вывод просто компактен.
0
|
|
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
|
| 23.08.2009, 22:48 | |
|
Король Лир - это из совсем другой оперы.
Исходя из математики уложить 0 кубиков в 0 мест ( и вообще в любое число мест ) можно ровно одним способом. Другая проверка - через составленную рекурсивную формулу. Уложить 1 кубик в ширину 1 можно ровно 1 способом - это очевидно. В тоже время пользуясь рекурсивной функцией что нужно сделать чтобы уложить 1 кубик ? Нужно положить 1 кубик в нижнем ряду, а потом подсчитать сколько раз 1-1 кубик ляжет на ширину 1-1, то есть сколько раз 0 кубиков лягут на поле ширины 0. Если принять что значение 0, то получим ошибку в граничных значениях. А если принять что 0 кубиков кладутся 1 способом, то и форумула оказывается верна и тут.
0
|
|
|
47 / 47 / 3
Регистрация: 07.01.2009
Сообщений: 297
|
|
| 26.08.2009, 18:51 | |
|
динамическое программирование,коротко говоря, что-то подобное индукции,в этом алгоритме нужно каждый шаг просчитывать наперед
0
|
|
| 26.08.2009, 18:51 | |
|
Динамическое программирование Динамическое программирование Динамическое программирование задача динамическое программирование Динамическое программирование - задача Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
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 на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|