Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 15.04.2020
Сообщений: 5

Лабиринт: определить, возможно ли из точки входа добраться до точки выхода

18.06.2020, 19:03. Показов 3478. Ответов 6

Студворк — интернет-сервис помощи студентам
Даны числа n и m. После чего задаётся матрица размером n×m из 0
и 1. Будем считать, что эта матрица задаёт карту лабиринта, при этом 0
является пустым пространством, а 1 стеной. В данном лабиринте будем
считать, что точкой входа является клетка с координатами (1,1), а точкой
выхода (n,m). Необходимо определить, возможно ли из точки входа добраться
до точки выхода, если можно двигаться только в четырёх возможных
направлениях (север, юг, запад, восток) и перемещаться можно только в
свободную клетку.
Пример. Входные данные:
4 5
0 0 0 1 1
0 0 1 1 0
0 1 1 0 0
0 0 0 0 0
Выходные данные:
YES
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2020, 19:03
Ответы с готовыми решениями:

Прямоугольный лабиринт: кратчайший путь из заданной точки до выхода
добрый день , составьте пожалуйста программу , которая в прямоугольном лабиринте ищет кратчайший путь из заданной точки до выхода

Поменять точки входа и выхода лабиринта
У меня есть два кода для создания лабиринта. Первый я не знаю как запустить, а второй не могу отредактировать под себя. Мне нужно , чтобы я...

Чем могут помочь точки входа и выхода
У меня стоит на сайте ЛИ. Есть раздел точки входа и точки выхода (в ЛИ). Расскажите как можно использовать эти данные? Ведь что что...

6
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
19.06.2020, 08:54
Можно сделать через рекурсию, с изменением значений ячеек в которой находится функция с 0 на 1, что б не было зацикливаний
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,267
19.06.2020, 10:04
Волновой алгоритм:
Миниатюры
Лабиринт: определить, возможно ли из точки входа добраться до точки выхода  
0
151 / 103 / 49
Регистрация: 21.11.2019
Сообщений: 285
19.06.2020, 10:37
Лучший ответ Сообщение было отмечено Dirty_SG как решение

Решение

C++
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
41
42
43
44
45
46
#include <iostream>
using namespace std;
 
bool foo(short y, short x, bool** arr,short& m, short& n)
{
    if (y==m-1 && x==n-1) return 1;
    arr[y][x]=1;
    bool result1=0, result2=0, result3=0, result4=0;
    
    if(y-1>=0)
       if(arr[y-1][x]==0)
          result1=foo(y-1,x,arr,m,n);
    
     if(y+1<m)
       if(arr[y+1][x]==0)
          result2=foo(y+1,x,arr,m,n);
 
    if(x-1>=0)
       if(arr[y][x-1]==0)
          result3=foo(y,x-1,arr,m,n);
    
     if(x+1<n)
       if(arr[y][x+1]==0)
          result4=foo(y,x+1,arr,m,n);       
    
    return (result1||result2||result3||result4);
}
 
int main()
{
    short m, n;
    cout<<"enter m, n > ";
    cin>>m>>n;
    
    bool** arr=new bool*[m];
    for (short i=0;i<m;i++)
       arr[i]=new bool[n];
    
    cout<<"enter matrix elements > ";        
    for(short i=0;i<m;i++)
       for(short j=0;j<n;j++)
          cin>>arr[i][j];
    
    cout<<(foo(0,0,arr,m,n)?"true":"false");
    return 0;
}
Миниатюры
Лабиринт: определить, возможно ли из точки входа добраться до точки выхода   Лабиринт: определить, возможно ли из точки входа добраться до точки выхода  
3
0 / 0 / 0
Регистрация: 23.07.2020
Сообщений: 43
22.08.2020, 21:40
Shut913, а можно поменять код так, чтобы начальную и конечную клетку задавать с клавиатуры?
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
22.08.2020, 23:30
Цитата Сообщение от Simonaakk Посмотреть сообщение
а можно поменять код так
можно
0
0 / 0 / 0
Регистрация: 23.07.2020
Сообщений: 43
24.08.2020, 07:04
С кодом можете помочь, очень прошу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2020, 07:04
Помогаю со студенческими работами здесь

Лабиринт задан в виде матрицы.Определить, можно ли из одной точки попасть в другую
Лабиринт задан в виде матрицы размером n на m. Стенам лабиринта соответствуют единицы, проходам - нули. Определить, можно ли из точки с...

Передача переменной из формы в точку входа и из точки входа в форму
Здравствуйте всем. Как мне передать переменную с обработчика событий из формы MyForm.h в MyForm.cpp в точку входа WINAPI wWinMain и...

Определить траекторию движения точки, найти положение точки на траектории, её сокрость и ускорение.
В соответствии с заданными уравнениями движения x=7t+1 y=-8/(7t+1) t=4/7 Определить траекторию движения точки. Для заданного момента...

Определить траекторию движения точки, найти положение точки на траектории, её сокрость и ускорение
В соответствии с заданными уравнениями движения x=2(t^3)+8t+12 м, y=(t^3)+4t+3 м. t=1 c. Для заданного момента времени t найти положение...

Написать уравнения колебаний кинетиической и потенциальной энергии точки, определить полную энергию точки.
Точка массой 5г совершает гармоническое колебание по закону x=5sin(3/5Пt+П/3) (см). Написать уравнения колебаний кинетиической и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru