0 / 0 / 0
Регистрация: 21.04.2019
Сообщений: 35
|
||||||
1 | ||||||
Сломалась программа22.04.2019, 19:40. Показов 604. Ответов 6
Метки нет (Все метки)
Рассмотрим следующую игру:
Имеется доска, разделенная на клетки. В каждой клетке стоит некоторое число. Из одной клетки можно перейти в другую, если расстояние между этими клетками равно числу в той клетке, куда делается ход. Игрок начинает ходить из клетки (X1,Y1). Определить за какое минимальное количество ходов игрок может переместиться в клетку (X2,Y2). Расстояние между клетками (A,B) и (C,D) вычисляется по формуле: abs(C-A)+abs(D-B) (здесь abs - это модуль числа, т.е. abs(-5)=5, abs(7)=7, abs(0)=0). Ограничения: 1 <= N,M <= 30 1 <= X1,X2 <= N 1 <= Y1,Y2 <= M Формат ввода: N M - размер доски по вертикали и горизонтали. A11 A12 ... A1m A21 A22 ... A2m - числа в соответствующих клетках доски. ... An1 An2 ... Anm X1 Y1 X2 Y2 Формат вывода: L - минимальное количество ходов.
0
|
22.04.2019, 19:40 | |
Ответы с готовыми решениями:
6
Сломалась W7 Сломалась база Сломалась видеокарта Сломалась ФС на microsd |
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
|
|
22.04.2019, 20:04 | 2 |
Prospek, на какой строке вылазит ошибка?
Добавлено через 2 минуты понял. Добавлено через 2 минуты что за не понятные действия с переменными?!
0
|
0 / 0 / 0
Регистрация: 21.04.2019
Сообщений: 35
|
|
22.04.2019, 20:21 [ТС] | 3 |
Там опечатка
(QueBegin<=QueEnd)
0
|
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
|
|
22.04.2019, 20:55 | 4 |
Prospek, проблема решена?
0
|
0 / 0 / 0
Регистрация: 21.04.2019
Сообщений: 35
|
||||||
22.04.2019, 22:50 [ТС] | 5 | |||||
Пс,
Пример ввода: 2 2 1 2 2 2 1 1 2 2 Пример вывода: 1
Ошибка времени выполнения: Индекс находился вне границ массива.
0
|
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,246
|
|
23.04.2019, 15:13 | 6 |
Prospek, в какой строке ошибка?
Добавлено через 5 часов 26 минут а что эта строка делает?
0
|
Модератор
|
||||||
23.04.2019, 16:22 | 7 | |||||
Prospek, мне кажется, что решение задания в реализации так называемом поиске в ширину (волновом методе).
Если "перевернуть" условие задачи, то получится поиск решения от точки (X2,Y2) в точку (X1,Y1). Ощущение, что именно его вы и пытаетесь реализовать. Что-то похожее по смыслу - Найти наиболее короткий из путей от первой до второй клетки, двигаясь ходом коня - "Найти наиболее короткий из путей от первой до второй клетки, двигаясь ходом коня" Там волновой алгоритм - каждая новая клеточка, на которую возможен переход помещается в очередь (волну). Саму очередь можно реализовать и на массиве. Только вам следовало бы проще определять клеточки, на которые возможен переход. Вот предположим, что в клеточке (X, Y) число N. Крайняя левая клеточка, в которую возможен переход - (X-N, Y). Делаем "шаг вправо" - таких клеточек уже две (X-N+1, Y-1) и (X-N+1, Y+1). Таким образом, обозначив dX перемещение от крайней левой клеточки в цикле получим все доступные для перехода
По сути, ход конём является ходом из клетки с числом 3, только отсутствуют ещё 4 случая для ровных ходов ("ладьёй").
0
|
23.04.2019, 16:22 | |
23.04.2019, 16:22 | |
Помогаю со студенческими работами здесь
7
Сломалась форма Сломалась видеокарта Сломалась клавиатура Сломалась табличка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |