Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Erzhan4uk
0 / 0 / 0
Регистрация: 25.10.2015
Сообщений: 1
#1

Найти маршрут круиза, соответствующего наименьшей стоимости путешествия

29.11.2015, 15:43. Просмотров 212. Ответов 0
Метки нет (Все метки)

//не как не могу понять как сделать!!! пытался так: чтоб она из 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
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <stdio.h>
#include <conio.h>
//
void main()
{
int c2,i,k,j,n,e,q,v,m,z,x,min,h=0,c=0;
printf("Введите расстояние : ");scanf_s("%i",&n);
int *t=new int[n];
int *t2=new int[n];
int **kg=new int*[n];
for(i=0;i<n;i++)
kg[i]=new int[n];
int **kg1=new int*[n];
for(i=0;i<n;i++)
kg1[i]=new int[n];
for(i=0;i<n;i++)
for(j=0;j<n;j++)
kg[i][j]=0;
for(i=0;i<n;i++) //заполнение расстояние между городами
for(j=i+1;j<n;j++)
{
printf("vedite racto9nnie %i do %i: ",i+1,j+1);
scanf_s("%i",&kg[i][j]);
kg1[i][j]=kg[i][j];
}
 
printf(" ");
for(i=0;i<n;i++)
printf("%3i",i+1);
printf("\n\n\n\n");
for(i=0;i<n;i++) // заполнение массива городов симметрично
{
printf("%2i ",i+1);
for(j=0;j<n;j++)
{
kg[j][i]=kg[i][j];
kg1[j][i]=kg[i][j];
printf("%3i",kg[i][j]);
}
printf("\n\n");
}
printf("Vvedite na4al'nuy to4ky : ");scanf_s("%i",&k); //ввод с какой страны начнётся путь
k--;
e=k;x=k;
q=1;c2=0;
v=0;z=2;
t[0]=k;
do //поиск минимального пути между странами
{
min=99999;
for(j=x+1;j<n;j++)
if(min>=kg[x][j] && kg1[x][j]!=-1)
{
 min=kg[x][j];
 m=j;
}
for(j=0;j<x;j++)
if(min>kg[j][x] && kg1[j][x]!=-1)
{
 min=kg[j][x];
 m=j;
}
t2[q]=x;
t[q]=m;
for(j=x+1;j<n;j++)
kg1[x][j]=-1;
for(j=0;j<x;j++)
kg1[j][x]=-1;
x=m;
z=0;
for(i=0;i<n && z!=1;i++)
for(j=i+1;j<n;j++)
if(kg1[i][j]==-1)
 v=1;
else
 {v=3;z=1;break;}
q++;
}
while(v!=1);
t2[q]=x;t[q]=k;q++;v=q;z=0;q=0;c=0;c2=0;e=0;
do // проверка условий алгоритма Дейкстры
{
if(q!=0)
{
c=c+kg[t2[e]][t[q]];
c2=c-kg[t2[e-1]][t[q-1]]-kg[t2[e]][t[q]]+kg[t[q]][t[q-1]]+kg[t2[e-1]][t[q]];}
if(c>c2 && q!=0 && z<q)
{
z=t2[e];
t2[e]=t2[e-1];
t2[e-1]=z;
z=t[q-1];
t[q-1]=t[q-2];
t[q-2]=z;
z=q;
q=-1;e=-1;c=0;c2=0;
}
q++;
e++;
}
while(v!=q);
printf("\n\nput : %i",t[0]+1); //вывод пути
for(i=1;i<q;i++)
printf("-%i",t[i]+1);
printf("\n\n");
printf("dlina puti : %i",c);//вывод длинны пути
_getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2015, 15:43
Ответы с готовыми решениями:

Маршрут в матрице с наименьшей суммой клеток в пути
Помогите пожалуйста решить задачу: В таблице из N строк и N столбцов клетки заполнены цифрами от 0...

Найти кратчайший маршрут
Найти кратчайший маршрут, который начинается и завершается в заданной вершине ориентированному...

В trie-дереве найти слово с наименьшей длиной
привет. пожалуйста помогите с задачи. как искать слово с наименьшей длиной. #include...

Найти разницу между наименьшей и наибольшей зарплатой
(Задача на файлы). Составить программу решения, используя функции. Сама задача: Задан зарплаты...

Файлы: найти сумму наибольшей и наименьшей компоненты
Условие: Дан файл f, компоненты которого являются действительными числами. Найти сумму наибольшего...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2015, 15:43

Найти тройку последовательных элементов массива F с наименьшей суммой
найти наибольший элемент массива А,меньший произведения элементов с нечетными номерами найти...

Найти строку матрицы с наибольшей и наименьшей суммой элементов
Напишите пожалуйста решение задачи Вот условие:Дана прямоугольная матрица. Найти строку с...

Найти строки матрицы с наибольшей и наименьшей суммой элементов
Дана прямоугольная матрица. Найти ее строки с наибольшей и наименьшей суммой элементов. Вывести на...


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

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

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