1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| MARSHALL MATHERS |
Сообщение
#1
|
|
Гость |
На рисунке изображен треугольник(я напишу треугольник как он дан в массиве):
|7 | |38 | |810 | |2744 | |45265| (типа того, палочками обочначены границы конкретно этого треугольника) Написать прогу, которая вычисляет наибольшую сумму чисел, расположенных на пути, начинающимся в верхней точке треугольника и заканчивющиймся на основании треугольника. Каждый шаг на пути может осуществлятся вниз по диогонали влево или по диогонали вправо. Число строк в треуголнике >1 и <=100. Треугольник составлен из целых чисел от 0 до 99...(это оригинальый текст задачи) надаюсь на ваши советы?! |
![]() ![]() |
| Atos |
Сообщение
#2
|
|
Прогрессор ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 602 Пол: Мужской Реальное имя: Михаил Репутация: 9 |
Задача на динамическое программирование. Алгоритм решения такой: пусть у нас n строк. Определим для каждого элемента каждой строки его вес таким образом, чтобы вес первого элемента первой строки был равен нужному нам результату.
Шаг 0. Всем элементам n-й строки определим вес, равный их значению. Присвоим i:=n-1 Шаг 1. Рассмотрим i-ю строку. Предположим, что мы уже знаем часть искомого пути, протягивающуюся от первой строки до i-й, и знаем некоторое j-е число в i-й строке, которое принадлежит пути. Тогда для него надо определить, куда путь пойдёт дальше- вправо вниз или влево вниз. Поэтому определим вес j-го элемента как сумму его значения и максимального из весов элементов( i+1)-й строки, лежащих по диагонали влево и по диагонали вправо. Но так как мы на самом деле ещё не знаем пути. то эту операцию повторяем для всех чисел i-й строки (т. е. j меняется от 1 до i). Шаг 2. Если i>1, то уменьшаем i на единицу и возвращаемся к шагу 1, иначе КОНЕЦ РАБОТЫ Надеюсь, понятно рассказал... Если, что, переспроси. |
MARSHALL MATHERS Задача на треугольник 16.04.2005 2:27
Altair
Не согласен!
можно и графами обойтись.
На в… 16.04.2005 12:17
Marshall Mathers Можно попроще для ученика 9 класса...
Я вообще сн… 16.04.2005 17:16
volvo "Вам шашечки или ехать?" (С)
это очень… 18.04.2005 12:54
Atos
А у приведённого алгоритма O(n^2), каждая вершин… 18.04.2005 13:42
xds Флейм с намёком: задача на квадрат, куб, параллеле… 18.04.2005 19:36
Marshall Mathers Пожалйста подскажите, сделайте реальную подсказку,… 19.04.2005 1:27
Altair а что были даны фантастические? :) 19.04.2005 1:36
MARSHALL MATHERS Блин мне всего 15 лет, из тех слов которые вы тут … 19.04.2005 2:05
volvo Ну так используй то, что знаешь. Я-то как могу дог… 19.04.2005 2:07
Atos MARSHALL MATHERS, так всё-таки какое именно место … 19.04.2005 10:44
MARSHALL MATHERS Нашел я решение в интернете, задача 1994 или 1991 … 20.04.2005 2:18![]() ![]() |
|
Текстовая версия | 23.12.2025 20:20 |