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

Длина маршрута (граф) - C++

Восстановить пароль Регистрация
 
Gitarist
 Аватар для Gitarist
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 21
07.01.2011, 15:52     Длина маршрута (граф) #1
Проложите между А и В такие два маршрута, чтобы в первом сума чисел была 250, а во втором - 350.
Изображения
 
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2011, 15:52     Длина маршрута (граф)
Посмотрите здесь:

Граф C++
Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл C++
C++ Граф в С
Построить связный граф с вершинами во всех точках так, чтобы суммарная длина его ребра была наименьшей C++
C++ Динамическое программирование, поиск маршрута
задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная) C++
появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки - C++
C++ Структура "Автобус". Организовать поиск по номеру маршрута

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
07.01.2011, 23:44     Длина маршрута (граф) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
сильно думать не хотелось:
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "stdio.h"
int main()
{
    int mas[3][8]={29,31,16,17,46,21,27,52,13,21,35,53,11,63,14,15,76,-1,19,-1,48,-1,12,-1};
    int mas1[162][9]={0}, kr=1, i, j; 
    mas1[0][0]=24, mas1[1][0]=43;
    for(i=1; i<9; i++)
    {
        if(i%2)
        {
            for(j=0; j<kr; j++)
                mas1[j][i]=mas1[j][i-1]+mas[0][i-1];
            for(j=0; j<kr; j++)
                mas1[kr+j][i]=mas1[j][i-1]+mas[1][i-1];
            for(j=kr; j<2*kr; j++)
                mas1[kr+j][i]=mas1[j][i-1]+mas[1][i-1];
            for(j=kr; j<2*kr; j++)
                mas1[kr*2+j][i]=mas1[j][i-1]+mas[2][i-1];           
        }
        else
        {
            for(j=0; j<kr*3; j++)
                mas1[j][i]=mas1[j][i-1]+mas[0][i-1];
            for(j=kr; j<kr*4; j++)
                mas1[kr*2+j][i]=mas1[j][i-1]+mas[1][i-1];   
            kr*=3;      
        }
    }
    int temp1=250;
    while(temp1<400)
    {
    int i_temp=-1, temp=temp1;
    for(i=0; i_temp==-1 && i<162; i++)
        if(mas1[i][8]==temp1)           
            i_temp=i;
    int mas2[9], i_mas2=0;
    kr=81;
    for(i=8; i>0; i--)
    {
        if(i%2==0)
        {
            if(i_temp<kr)
            {
                mas2[i_mas2++]=mas[0][i-1];             
                temp-=mas[0][i-1];
            }
            else
            {
                mas2[i_mas2++]=mas[1][i-1];
                temp-=mas[1][i-1];
                i_temp-=kr-kr/3;
            }
            kr/=3;
        }
        else
        {
            if(i_temp<kr)
            {
                mas2[i_mas2++]=mas[0][i-1];
                temp-=mas[0][i-1];
            }
            else
            {
                if(i_temp>=kr && i_temp<3*kr)
                {
                    mas2[i_mas2++]=mas[1][i-1];
                    temp-=mas[1][i-1];
                    while(i_temp-kr>=0)
                        i_temp-=kr;
                }
                else
                {
                    mas2[i_mas2++]=mas[2][i-1];
                    temp-=mas[2][i-1];
                    i_temp-=2*kr;
                }
            }           
        }
    }
    if(temp-24==0)
        mas2[i_mas2]=24;
    else
        mas2[i_mas2]=43;
    for(i=8; i>0; i--)
        printf("%d+", mas2[i]);
    printf("%d=%d\n", mas2[0], temp1);
    temp1+=100;
    }
    return 0;
}
Yandex
Объявления
07.01.2011, 23:44     Длина маршрута (граф)
Ответ Создать тему
Опции темы

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