Форум программистов, компьютерный форум CyberForum.ru

Какую наибольшую стоимость может иметь путь из клетки (1, 1) в клетку (n, m), если передвигаться за 1 шаг можно только на правую или нижнюю клетку. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проблема при вызове функции http://www.cyberforum.ru/cpp-beginners/thread377420.html
Написал для себя простенькую напоминалку, выводящую указанное сообщение через определённый промежуток времени(ну там, "отойди от компа, глаза разомни"))) и тп). И всё бы работает нормально, но вот как только происходит вызов функции change(), для изменения начальных параметров, происходит что-то странное - ничего не считывается с клавиатуры и консоль будто подвисает... В общем прошу совета, что...
C++ Символьные строки и функции Помогите написать функцию Right(s,l) для выравнивание строки s по правому краю до длины l. http://www.cyberforum.ru/cpp-beginners/thread377393.html
C++ Определить имеет ли система решения,если имеет то их найти
Помогите решить задачи с контр по программированию 1-3 с++ 1. Определить имеет ли система решения,если имеет то их найти a*x+b*y=c d*x*x+e*y*y=f 2. Поступает последовательность,0-конец последовательности.Найти порядковый номер самого маленького по модулю элемента последовательности. 3.Сложить 15 простое,4 совершенное и 1 нечетное избыточное число(составить 3 функции которые будут...
C++ Сортировка ассоциативного контейнера!
В классе есть поля: название, цена и количество. Нужно записать данные в ассоциативный контейнер, и нужно один раз отсортировать и вывести по убыванию цены, а затем отсортировать и вывести по возрастанию количества. (Можно использовать vector и sort () с предикатом). Я могу только написать два функторы которые будут его сортировать, но тогда надо два map или multimap.Как это сделать одним мепом?
C++ Сдвинуть циклически элементы одномерного массива на k позиций влево http://www.cyberforum.ru/cpp-beginners/thread377377.html
Тема и есть условие задачи... Сам же я застопорился на написании алгоритма сдвига :- #include <iostream.h> #include <math.h> int main() { int a; int i, n; cout << "Vvedite kol-vo elementov: "; cin >> n;
C++ Множественное наследование в языке С++ #include <iostream.h> #include <stdlib.h> #include <conio.h> class D2{ int a; public: D2() { }; D2(int x) { a=x; } void show_D2() { cout <<"D2= "<< a << "\n"; } подробнее

Показать сообщение отдельно
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
03.11.2011, 22:07     Какую наибольшую стоимость может иметь путь из клетки (1, 1) в клетку (n, m), если передвигаться за 1 шаг можно только на правую или нижнюю клетку.
Если по быстрому решать то так:
имеем массив char mas[n][m], заполненный такими значениями:
0044x
300x7
00100
создаем свой массив a[n][m] заполненный значениями -1,
далее так:
C++
1
2
3
4
5
6
7
8
9
10
11
a[0][0]=(int)(mas[0][0]-'0');
for(int i=1; i<m; i++)
   if(mas[0][i]!='x')
        a[0][i]=a[0][i-1]+(int)(mas[0][i]-'0');
   else
        break;
for(int i=1; i<n; i++)
   if(mas[i][0]!='x')
        a[i][0]=a[i-1][0]+(int)(mas[i][0]-'0');
   else
        break;
Дальше так:
C++
1
2
3
4
for(i=1; i<n; i++)
    for(j=1; j<m; j++)
        if((a[i][j-1]!=-1 || a[i-1][j]!=-1) && mas[i][j]!='x')
            a[i][j]=max(a[i][j-1], a[i-1][j])+(int)(mas[i][j]-'0');
Выводим a[n-1][m-1]
Еще не учел вариант когда mas[i][j]=='x' - можно в этом случае отдельно вывести -1
 
Текущее время: 11:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru