![]() |
Помогите написать программу для определения оптимального пути (возможно псевдокод)
Условие:
План прямоугольного сада размером MxN состоит из квадратных зон. В каждой зоне растёт по дереву. С каждого дерева любой зоны могут упасть несколько яблок. В левом верхнем квадратике находится ёжик, который должен дойти до правого нижнего квадратика. В саду существуют ограничения относительно способа передвижения: ёжик может двигаться из текущего квадратика только в один из двух соседних правый либо нижний. Составьте программу, которая вычисляет максимальное количество яблок, которое может собрать ёжик, передвигаясь к нужному квадратику. Технические условия: План сада задан таблицей apples содержащей m строк и n столбиков. Элемент apples[i,j] таблицы указывает количество яблок, упавших с дерева в зону с координатами i,j. Текстовый файл input.txt содержит в первой строке числа M,N разделённые пробелом. В каждой из следующих m строк содержится по n чисел apples[i,j] разделённых пробелами. Файл output.txt должен содержать одно натуральное число. Примеры файлов: Input.txt Output.txt 3 3 1 2 3 1 2 3 1 2 3 12 |
Боюсь, что в реале ёжик рано или поздно долбанется башкой о ствол яблони, положение которого не учтено в условии...
|
(Чтение файла я не делал - только рекурсию) |
почему не получается инициализировать массив следующим образом:
int[][] apples = new int[4][] { { 3, 3 }, { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } }; |
nastr, потому что то, что Вы написали, это вообще не массив.
|
Цитата:
Я модифицировал под C#: Код:
int n = 3, m = 3; |
Типовая задача динамического программирования, решается за один проход M*N (рекурсия не нужна).
http://ru.wikipedia.org/wiki/%D0%94%...BD%D0%B8%D0%B5 очень походит на нечёткое сравнение http://habrahabr.ru/post/114997/ |
Время: 20:21. |
Время: 20:21.
© OSzone.net 2001-