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

Задача нахождения кратчайшего пути - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Собеседования по С++ для джуна http://www.cyberforum.ru/cpp-beginners/thread1506665.html
Добрый день, если вы бы проводили собеседования по С++ для джуна - какой вопрос по С++ вы бы припасли как самый сложный? Для меня пока, что самый сложный вопрос (который расскрыл бы многие области знания по С++) такой: - опишите все факторы, которые влияют на размер экземпляра класса. Какой минимальный и максимальный размер пустого класса.
C++ Необязательные временные объекты Помогите с задачкой: Класс Car содержит модель автомобиля. Функция Find определяет, присутствует ли указанная модель в списке автомобилей. class Car { string model_; public: Car(string mod) :model_(mod){} bool operator==(const Car& other) { http://www.cyberforum.ru/cpp-beginners/thread1506633.html
C++ Уведомления между потоками
Здравствуйте! Набросал код для экспериментов: #include "stdafx.h" int блок_1(HWND *hWnd, MyStruct* strukt_1); int сервис_1(HWND *hWnd, MyStruct* strukt_1); void блок(HWND *hWnd, MyStruct* strukt_1)//запускаем основной поток { int q = 0;
C++ Когда в ОС используется COM ?
Для каких действий ОС использует COM технологию ? Всегда ли она используется при исполнении exe файлов?
C++ Где найти все глаголы для ShellExecute ? http://www.cyberforum.ru/cpp-beginners/thread1506564.html
Здравствуйте. Где и как посмотреть список допустимых глаголов системы? Знаю о существовании страницы в msdn , но функция которую я нашел в интернете и использую использует глагол "runas", которого нет на странице.
C++ Write some short C or C++ code to generate a segmentation fault Write some short C or C++ code to generate a segmentation fault подробнее

Показать сообщение отдельно
MansMI
Нарушитель
1047 / 844 / 205
Регистрация: 08.01.2012
Сообщений: 3,032
29.07.2015, 20:29     Задача нахождения кратчайшего пути
если еще интересно:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
struct cell{ int n,s,m; };
//cells, row, col,step, cursum, maxsum
void treasure(cell cl[][6], int r, int c, int s, int sum, int *max)
{
    cl[r][c].s=s;
    sum+=cl[r][c].n;
    if(!r && c==5)
    {
        if(sum>*max)
        {
            for(int i=0; i<6; i++)
                for(int j=0; j<6; j++) cl[i][j].m=cl[i][j].s;
            *max=sum;
        }
    }
    else
    if(s<17)
    {
        int dr[]={-1, 0, 1, 0};
        int dc[]={ 0, 1, 0,-1};
        for(int i=0; i<4; i++)
        {
            int nr=r+dr[i];
            int nc=c+dc[i];
            if(nr>=0 && nr<6 && nc>=0 && nc<6 && !cl[nr][nc].s)
                treasure(cl, nr, nc, s+1, sum, max);
        }
    }
    cl[r][c].s=0;
}
 
void main()
{
    int a[6][6]={{ 0,10, 0, 1, 0, 0}, { 3, 0, 4, 0, 1, 0},
                 { 7, 0, 0, 4, 0, 0}, { 0, 0, 3, 0, 0, 5},
                 { 0, 6, 0, 2, 0, 0}, { 0, 0, 3, 0, 9, 6}};
    cell c[6][6];
 
    for(int i=0; i<6; i++)
        for(int j=0; j<6; j++)
        {
            c[i][j].n=a[i][j];
            c[i][j].s=0;
        }
    
    int max=0;
    treasure(c,5,0,1,0,&max);
 
    for(int i=0; i<6; i++)
    {
        for(int j=0; j<6; j++) printf("%3d",c[i][j].m);
        printf("\n");
    }
    printf("%d\n",max);
    system("pause");
}
 
Текущее время: 07:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru