98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
1

Еж в саду - Найти маршрут

28.02.2019, 03:13. Показов 678. Ответов 3

Студворк — интернет-сервис помощи студентам
Лес разбит на квадраты и в каждом квадрате находятся яблоки. Еж находится в верхнем левом квадрате леса и хочет попасть в нижний правый квадрат таким образом, чтобы собрать наибольшее количество яблок. Еж может перемещаться только в соседние (справа и снизу) квадраты и собирает яблоки во всех квадратах, в которых он побывал.
Определить маршрут, по которому перемещался еж собирая яблоки. При прочих равных условиях еж предпочитал движение вниз.
Входные данные:В первой строке дано два числа N и M (1 <= M, N <= 1000) - количество строк и столбцов в разбиении леса на квадраты;
В последующих N строках по M целых чисел (0..1000) в каждой строке - количество яблок в каждом квадрате леса.
Выходные данные:В выходной поток вывести в виде таблицы по строкам и стобцам (через один пробел) нули и единицы. Единицой обозначается квадрат, пройденный ежом.
Пример входного файла(input.txt):
3 3
1 1 1
2 4 2
3 3 3
Пример выходного файла(output.txt):
1 0 0
1 1 0
0 1 1
Задачу почти решил, 1 тест не проходит, вот мое решение, контрпример никак не выходит подобрать:
Pascal
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
var a,b:array[0..1000,0..1000] of longint;
n,i,j,m,k,m1,x,y,k1:longint;
begin
  readln(n,m);
  for i:=1 to n do
    begin
      for j:=1 to m do
        read(a[i,j]);
      readln;
    end;
   for i:=2 to m do
    a[1,i]:=a[1,i]+a[1,i-1];
   for i:=2 to n do
    a[i,1]:=a[i,1]+a[i-1,1];
   for i:=2 to n do
      for j:=2 to m do
        if a[i-1,j]>a[i,j-1]
          then a[i,j]:=a[i,j]+a[i-1,j]
          else a[i,j]:=a[i,j]+a[i,j-1];
    i:=n;
    j:=m;
    while(I>0)and(J>0) do begin
      if a[i-1,j]>a[i,j-1]
        then begin 
              b[i-1,j]:=1;
              i:=i-1;
             end
        else begin 
              b[i,j-1]:=1;
              j:=j-1;
             end;
     end;
   b[n,m]:=1;
   for i:=1 to n do
    begin
      for j:=1 to m do
        write(b[i,j],' ');
      writeln;
    end;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2019, 03:13
Ответы с готовыми решениями:

Еж в саду
Лес разбит на квадраты и в каждом квадрате находятся яблоки. Еж находится в верхнем левом квадрате...

Найти кратчайший маршрут
Пожалуйста, помогите!!! Имеется несколько городов, связанных в виде графа. Каждое ребро графа...

Найти оптимальный маршрут
ребят,помогите, в функциях полный ноль,но для универа надо В каждой клетке прямоугольной таблицы...

Найти кратчайший маршрут
Найти кратчайший маршрут, который начинается и завершается в заданной вершине ориентированному...

3
Mikstereo
28.02.2019, 18:36  [ТС]
  #2

Не по теме:

Ап темы

0
Платежеспособный зверь
8835 / 4269 / 1621
Регистрация: 28.10.2009
Сообщений: 11,407
28.02.2019, 19:54 3
Знакомая задача. Лет 10 назад я её решал... Классика ДП
0
98 / 36 / 18
Регистрация: 05.11.2018
Сообщений: 231
28.02.2019, 22:40  [ТС] 4
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Знакомая задача. Лет 10 назад я её решал... Классика ДП
Что в моем решении не так? Где там ошибка?

Добавлено через 1 час 43 минуты
Задачу решил.Ошибки таковы:
1)b[1,1] всегда равно единице;
2)не верно обработан случай, когда первые 2 строки содержат только нули.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2019, 22:40
Помогаю со студенческими работами здесь

Найти кратчайший маршрут
Пожалуйста, помогите!!! Имеется несколько городов, связанных в виде графа. Каждое ребро графа...

Что у кого растет в саду?!
Пять друзей-садовников, живущих рядом друг с другом, выращивают в своих садах три вида урожаев:...

Найти кратчайший маршрут на графе
Помогите найти ошибку пожалуйста! задан граф, найти кратчайший путь. Задача на форме. 1я матрица...

Найти маршрут в бинарном дереве
Дано дерево глубины N (N — четное), каждая внутренняя вершина которого имеет 2 непосредственных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru