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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Gitarist
1 / 1 / 0
Регистрация: 12.11.2009
Сообщений: 21
#1

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

07.01.2011, 15:52. Просмотров 757. Ответов 1
Метки нет (Все метки)

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

Построить связный граф с вершинами во всех точках так, чтобы суммарная длина его ребра была наименьшей - C++
Здравствуйте, пожалуйста помогите... На плоскости своими координатами задано n точек.Построить связный граф с вершинами во всех...

Считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл - C++
помогите очень срочно надо. считать граф из файла (граф задан матрицей) представить его в виде списка и записать список заново в файл ...

появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки - - C++
Я видела, что на форуме есть подобные задачи, но ни одно из их решений не работает на моем dev cpp.:( вот вариант решения, но он не...

Функция вывода маршрута - C++
Дан файл, содержащий информацию о маршрутах городского транспорта. Можете помочь написать функции, выдающие количество маршрутов из пункта...

задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная) - C++
задан текст. удалить из нее все слова, длина которых четная (создать новый массив, оставив все слова, длина которых нечетная)

Динамическое программирование, поиск маршрута - C++
Возможно ли организовать поиск пути с препятствием, используя динамическое программирование? Т.е. что то типа лабиринта.

1
valeriikozlov
Эксперт С++
4670 / 2496 / 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;
}
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2011, 23:44
Привет! Вот еще темы с ответами:

Нахождение маршрута между вершинами - C++
Всем доброго времен суток. Очень нужна помощь в решении задачи Нужно построить маршрут между вершинами неориентированного графа по...

Поиск маршрута от одной точки до другой - C++
Добрый день! подскажите возможно ли разработать скрипт для определения расстояния (маршрута) одной точки до другой? На основе данных яндекс...

Функция определения более оптимального маршрута по времени - C++
Надо написать для структуры функцию определения более оптимального маршрута по времени. Написал, но программа не выводит ответ. Помогите...

Представить в виде двунаправленного списка схему автобусного маршрута - C++
Ребят, помогите с кодом программы: Представить в виде двунаправленного списка схему автобусного маршрута: названия остановок и время...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru