|
0 / 0 / 0
Регистрация: 31.10.2019
Сообщений: 3
|
|
Найти путь из клетки (1, 1) в клетку (N, N), чтобы сумма цифр в клетках, через которые он пролегает, была минимальной20.12.2019, 17:29. Показов 2218. Ответов 1
Метки нет (Все метки)
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N), чтобы сумма цифр в клетках, через которые он пролегает, была минимальной; из любой клетки ходить можно только вниз или вправо. Входные данные число N. В следующих N строках содержатся по N цифр без пробелов. (2 <= N <= 250) Выходные данные выведите N строк по N символов. Символ «#» (решетка) показывает, что маршрут проходит через эту клетку, а «.» (точка) - что не проходит. Если путей с минимальной суммой цифр несколько нужно вывести все
Сказали что бы массив заполнятся рандомно...как только пытаюсь поставить алгоритм для случайных чисел выдает мне ошибку "Не удалось открыть фаил....Код ошибки 0х80070002" #include <stdlib.h> #include <iostream> using namespace std; const int N = 3; const int max_number = 9; template < class Type > void printMatrix(Type m[N][N]) { for (int i = 0; i < N; i++) { for (int j = 0; j < N; j++) cout << m[i][j] << " "; cout << endl; } } void searchPath(int m[N][N], char result[N][N]) { const int max_length = (N - 1) * (N - 1) * max_number + 1; int min[N][N]; for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) min[i][j] = max_length; min[0][0] = m[0][0]; for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) { if (i != N - 1) { int path = min[i][j] + m[i + 1][j]; if (min[i + 1][j] > path) min[i + 1][j] = path; } if (j != N - 1) { int path = min[i][j] + m[i][j + 1]; if (min[i][j + 1] > path) min[i][j + 1] = path; } } for (int i = 0; i < N; i++) for (int j = 0; j < N; j++) result[i][j] = '.'; result[N - 1][N - 1] = '#'; for (int i = N - 1, j = N - 1; j != 0 || i != 0; ) { if (i != 0) { if (min[i][j] == min[i - 1][j] + m[i][j]) { i--; result[i][j] = '#'; continue; } } if (j != 0) { if (min[i][j] == min[i][j - 1] + m[i][j]) { j--; result[i][j] = '#'; continue; } } } } int main(int argc, char* argv[]) { int m1[N][N] = { }; int m2[N][N] = { {0,2,0}, {2,3,0}, {2,0,0} }; int m3[N][N] = { {1,3,5}, {6,3,2}, {3,8,4}, }; char result[N][N]; printMatrix(m1); searchPath(m1, result); printMatrix(result); cout << endl; printMatrix(m2); searchPath(m2, result); printMatrix(result); cout << endl; printMatrix(m3); searchPath(m3, result); printMatrix(result); cout << endl; system("pause"); return 0; }
0
|
|
| 20.12.2019, 17:29 | |
|
Ответы с готовыми решениями:
1
Найти такой путь из клетки (1,1) в клетку (А, В), чтобы сумма чисел равнялась заданному числу К В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N |
|
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
|
|
| 20.12.2019, 18:49 | |
|
1. Код такой длины лучше кидать в спойлер
Кликните здесь для просмотра всего текста
вот так
2. Его обязательно нужно выделять 3. Это уже проблемы вашего компилятора 4. Для уверенности какой средой разработки и компилятором вы пользуетесь
0
|
|
| 20.12.2019, 18:49 | |
|
Помогаю со студенческими работами здесь
2
В матрице найти такой путь от первой колонки к последней, чтобы сумма чисел пройденных по пути была минимальная
В таблице клетки заполнены случайным образом цифрами от 0 до 9. Найти маршрут из клетки A(1,1) в клетку A(N,N) В матрице выбрать n элементов в разных строках и разных столбцах так, чтобы их сумма была минимальной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|