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

Динамическое программирование! - C++

Восстановить пароль Регистрация
 
blacckrose9865
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 18
04.06.2013, 17:54     Динамическое программирование! #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
#include <cstdio>
#include <algorithm>
 
using namespace std;
 
int a[30][30], n, m;
 
int main()
{
    scanf(" %d %d", &n, &m);
/*---------------------------------------------------------------------------------------------------------*/
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            scanf(" %d", &a[i][j]);
    for(int i = 1; i < m; i++)
        a[0][i] += a[0][i - 1];
    for(int i = 1; i < n; i++)
        a[i][0] += a[i - 1][0]; 
    for(int i = 1; i < n; i++)
        for(int j = 1; j < m; j++)
            a[i][j] += min(a[i - 1][j], a[i][j - 1]);
/*---------------------------------------------------------------------------------------------------------*/
    printf("%d", a[n - 1][m - 1]);
    system ("pause");
    return 0;
}
ребята, можете объяснить пожалуйста, что циклы делают в этой программе?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 17:54     Динамическое программирование!
Посмотрите здесь:

C++ Динамическое программирование
C++ Динамическое программирование
C++ динамическое программирование
Динамическое программирование. C++
C++ Динамическое программирование
C++ ДП Динамическое программирование
C++ Динамическое программирование
C++ Динамическое программирование

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ezembi
 Аватар для Ezembi
100 / 87 / 3
Регистрация: 29.05.2013
Сообщений: 227
04.06.2013, 18:02     Динамическое программирование! #2
Цитата Сообщение от blacckrose9865 Посмотреть сообщение
C++
1
2
3
for(int i = 0; i < n; i++)
* * * * for(int j = 0; j < m; j++)
* * * * * * scanf(" %d", &a[i][j]);
ввод массива


Цитата Сообщение от blacckrose9865 Посмотреть сообщение
C++
1
2
for(int i = 1; i < m; i++)
* * * * a[0][i] += a[0][i - 1];
забивает первую строку матрицы с 1-го(если считать с нуля) элемента по правилу данный = данный+предыдущей

Цитата Сообщение от blacckrose9865 Посмотреть сообщение
C++
1
2
for(int i = 1; i < n; i++)
* * * * a[i][0] += a[i - 1][0];
тоже самое, но со столбиком №0


Цитата Сообщение от blacckrose9865 Посмотреть сообщение
C++
1
2
3
for(int i = 1; i < n; i++)
* * * * for(int j = 1; j < m; j++)
* * * * * * a[i][j] += min(a[i - 1][j], a[i][j - 1]);
изменяются все значения,кроме столба и строки №0 по правилу данный = минимальный из выбранных элементов
вроде всё
Yandex
Объявления
04.06.2013, 18:02     Динамическое программирование!
Ответ Создать тему
Опции темы

Текущее время: 12:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru