Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.12.2019, 17:29
Ответы с готовыми решениями:

Найти такой путь из клетки [i1, j1] в клетку [i2, j2], чтобы сумма чисел по данному пути была минимальной
Здравствуйте, есть такая задача: 1.Дан двумерный числовой массив размером N1xN2. 2.Найти такой путь из клетки в клетку , чтобы...

Найти такой путь из клетки (1,1) в клетку (А, В), чтобы сумма чисел равнялась заданному числу К
Помогите написать программу к задаче Дано шахматную доску размером М на N. Шахматная фигура &quot;мини-тура&quot; может перемещаться...

В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N), чтобы...

1
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
20.12.2019, 18:49
1. Код такой длины лучше кидать в спойлер
Кликните здесь для просмотра всего текста
вот так

2. Его обязательно нужно выделять
3. Это уже проблемы вашего компилятора
4. Для уверенности какой средой разработки и компилятором вы пользуетесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2019, 18:49
Помогаю со студенческими работами здесь

Какую наибольшую стоимость может иметь путь из клетки (1, 1) в клетку (n, m), если передвигаться за 1 шаг можно только на правую или нижнюю клетку.
кому не трудно помогите сделать. если не трудно вам написать код. Дана прямоугольная таблица nxn клеток. В каждой клетке содержится...

В матрице найти такой путь от первой колонки к последней, чтобы сумма чисел пройденных по пути была минимальная
Ребят, нужен алгоритм. Формируется двумерная таблица из случайных цифр 1-9. Нужно найти такой путь от первой колонки таблицы к последней,...

Найти в диапазоне от 10 до 99 такие 3 последовательные числа, чтобы сумма их цифр была равна 15
Например: 13 14 15. 1+3+1+4+1+5=15.

В таблице клетки заполнены случайным образом цифрами от 0 до 9. Найти маршрут из клетки A(1,1) в клетку A(N,N)
В таблице NхN, клетки заполнены случайным образом цифрами от 0 до 9. Найти маршрут из клетки A(1,1) в клетку A(N,N) такой, что: 1) он...

В матрице выбрать n элементов в разных строках и разных столбцах так, чтобы их сумма была минимальной
Помогите,пожалуйста Добавлено через 2 часа 23 минуты примерный алгоритм как это можно сделать


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
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(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru