Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2013, 14:54   #1
NeLIN
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 25
По умолчанию Имеется k селений

Имеется k селений. Если в селении i расположена больница, то поездка в селение j займет время a[i][j]. Найти номер селения i, в котором выгоднее всего разместить больницу (суммарное время поездок из i во все другие селения должно быть минимальным).

Код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
 int main()
{
  int i,j,**mas, n, max, t, max_min_i=0;
        printf("Kol-vo naselennih punctov n= ");
        scanf("%d", &n);
  mas = (int **)malloc (n * sizeof (int *));
  for (i = 0; i < n; i++)
  mas [i] = (int *)malloc (n * sizeof (int));
  for(i=1;i<n;i++)  
     for(j=0;j<i;j++)
     {
        printf("Vvod rastoyniy ot %d do %d =",i+1,j+1);
        scanf("%d",&mas[i][j]);
     }
    for(i=0;i<n;i++)  
        mas[i][i]=0;
    for(i=0;i<n-1;i++)  
         for(j=i+1;j<n;j++)
             mas[i][j]=mas[j][i];
  printf("Ishodnie rasstoyniy\n");
  for(i=0;i<n;i++)  
  {
          for(j=0;j<n;j++)
         printf("%d\t",mas[i][j]);  
      printf("\n\n");
  }
   max=mas[0][0];
        for(j=1; j<n; j++)
                if(mas[0][j]>max)
                        max=mas[0][j];
        for(i=1; i<n; i++)
        {
                t=mas[i][0];
                for(j=1; j<n; j++)
                        if(t <mas[i][j])
                                t=mas[i][j];
                if(t<max)
                {
                        max=t;
                        max_min_i=i;
                }
        }
        printf(" Vibiraem %d naselenni punkt", max_min_i+1);
        getch();
 return 0;
}
Объясните пожалуйста детально задачу. Сразу скажу, что делал не сам. Но все же прошу о помощи!
NeLIN вне форума Ответить с цитированием
Старый 04.07.2013, 15:17   #2
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

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

Последний раз редактировалось Kukurudza; 04.07.2013 в 15:26.
Kukurudza вне форума Ответить с цитированием
Старый 04.07.2013, 15:59   #3
NeLIN
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 25
По умолчанию

Пожалуйста объясните по подробней. Я просто Си только начал учить.И вот дали такую задачу. А что тут происходит я не понимаю.
NeLIN вне форума Ответить с цитированием
Старый 04.07.2013, 16:36   #4
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Цитата:
Сообщение от NeLIN Посмотреть сообщение
Пожалуйста объясните по подробней. Я просто Си только начал учить.И вот дали такую задачу. А что тут происходит я не понимаю.
Вам алгоритм разъясняют.
Igor95 вне форума Ответить с цитированием
Старый 04.07.2013, 16:44   #5
NeLIN
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Igor95 Посмотреть сообщение
Вам алгоритм разъясняют.
Я ж пишу что недавно начал изучать.А мне пишут что "это типичная задача на графе. алгоритм дейкстры" Я не знаю что это!
NeLIN вне форума Ответить с цитированием
Старый 04.07.2013, 16:47   #6
Igor95
Форумчанин
 
Регистрация: 03.01.2013
Сообщений: 388
По умолчанию

Цитата:
Сообщение от NeLIN Посмотреть сообщение
Я ж пишу что недавно начал изучать.А мне пишут что "это типичная задача на графе. алгоритм дейкстры" Я не знаю что это!
Вам объясняют решение задачи графа при помощи алгоритма Дейкстры. При чем здесь C?
Это АЛГОРИТМ - он не зависит от языка реализации.
Igor95 вне форума Ответить с цитированием
Старый 04.07.2013, 16:55   #7
NeLIN
Пользователь
 
Регистрация: 12.12.2012
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Igor95 Посмотреть сообщение
Вам объясняют решение задачи графа при помощи алгоритма Дейкстры. При чем здесь C?
Это АЛГОРИТМ - он не зависит от языка реализации.
Я не знаю этого алгоритма. В инсте где я учусь есть предмет теория алгоритмов, но в программе его нет. И поэтому не одного алгоритма я не знаю.
NeLIN вне форума Ответить с цитированием
Старый 04.07.2013, 16:56   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вас в гугле забанили?
http://ru.wikipedia.org/wiki/Алгоритм_Дейкстры
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Имеется у меня макрос kzld Microsoft Office Excel 8 03.03.2013 21:54
Имеется код Killall Общие вопросы Delphi 8 25.01.2013 16:16
Имеется матрица_Т Leshiy1 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.01.2011 19:16