|
0 / 0 / 0
Регистрация: 31.10.2019
Сообщений: 3
|
|
Найти путь из клетки (1, 1) в клетку (N, N), чтобы сумма цифр в клетках, через которые он пролегает, была минимальной20.12.2019, 17:29. Показов 2255. Ответов 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 элементов в разных строках и разных столбцах так, чтобы их сумма была минимальной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|