Форум программистов, компьютерный форум 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"; } подробнее

Показать сообщение отдельно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
03.11.2011, 22:15     Какую наибольшую стоимость может иметь путь из клетки (1, 1) в клетку (n, m), если передвигаться за 1 шаг можно только на правую или нижнюю клетку.
Не тестировал, но примерно так:
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
#include <iostream>
#include <vector>
 
int main()
{
    int n, m;
    std::cin >> n >> m;
    std::vector< std::vector< char > > matrix(n, std::vector< char > (m) );
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < m; ++j)
            std::cin >> matrix.at(i).at(j);
    
    std::vector< std::vector< int > > dinamic(n, std::vector< int > (m, -1) );
    dinamic.at(0).at(0) = matrix.at(0).at(0) - '0';
    for ( int i = 0; i < n ; ++i)
    {
        for (int j = 0; j < m; ++j)
        {
            if ( i == 0 && j == 0 )
                continue;
            
            if ( matrix[i][j] == 'x' )
                continue;
                
            if ( i > 0 && dinamic[i - 1][j] != -1 )
                dinamic[i][j] = dinamic[i - 1][j] + matrix[i][j] - '0';
            if ( j > 0 && dinamic[i][j - 1] != -1 )
                dinamic[i][j] = std::max( dinamic[i][j], dinamic[i][j - 1] + matrix[i][j] - '0' );
        }
        
    }
    
    std::cout << dinamic[n - 1][m - 1];     
}
 
Текущее время: 23:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru