Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
1

Задача про города и дороги

08.06.2019, 16:58. Показов 3093. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте поступило такое задание не знаю как подобраться к решению к решал подскажите пожалуйста
Вам предоставляется список городов. Каждая прямая связь между двумя городами имеет свои транспортные расходы (целое число больше 0). Цель состоит в том, чтобы найти пути минимальной стоимости между парами городов. Предположим, что стоимость каждого пути (которая является суммой затрат на все прямые соединения, принадлежащие этому пути) составляет не более 200000. Название города - это строка, содержащая символы a, ..., z и не более 10 символы длинные.
2) вход s [количество тестов <= 10]
n [количество городов <= 10000]
ИМЯ [название города]
р [количество соседей города НАИМЕНОВАНИЕ]
nr cost [nr - индекс города, подключенного к NAME (индекс первого города равен 1)] [стоимость - стоимость перевозки]
r [количество путей для поиска <= 100]
ИМЯ1 ИМЯ2 [ИМЯ1 - источник, ИМЯ2 - место назначения]
[пустая строка, разделяющая тесты]
Выход стоимость [минимальная стоимость перевозки из города ИМЯ1 в город ИМЯ2 (по одному на линию)]
Пример
Входные данные:
1
4
Gdansk
2
2 1
3 3
Быдгощ
3
1 1
3 1
4 4
бежать
3
1 3
2 1
4 1
Варшава
2
2 4
3 1
2
Гданьск Варшава
Быдгощ Варшава
Выход: 3 2
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2019, 16:58
Ответы с готовыми решениями:

Задача про дороги
Помогите решить задачку: Файл входных данных Z5.DAT Файл результатов Z5.SOL Файлы решения...

Задача про Дороги
Обозначим пункты Бишкек - B; Суусамырская Развилка - А; Жалал-Абад - J; Талас - Т; Ош - О;...

Задача "Города и дороги"
Здравствуйте! :) Решаю задачу, но моё решение не проходит на 100%, а всего лишь на 50%....

Города и дороги
Семицарство состоит из n городов, занумерованных целыми числами от 1 до n. Столица Семицарства -...

6
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
08.06.2019, 17:06 2
Lunch, гугли про графы и поиск пути
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
08.06.2019, 17:10  [ТС] 3
Есть представление того что параметры города должны быть записаны в классе а обьекты этого класса лежать в коллекции ArrayList только вот где записать расстояния городов друг от друга чтобы высчитать минимальный путь, ведь городов много и от одного 4(условно) дороги к другим и где мне это поместить?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
08.06.2019, 18:59 4
про графы погуглил?
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
08.06.2019, 19:02  [ТС] 5
да впринципе многое понял даже код нашёл сейчас осталась только проблема с обходом графа

Добавлено через 1 минуту
Java
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
public class Graph {
 
    //максимальное количество вершин в графе
    private final int VERTEX_MAX = 100;
    //массив для хранения вершин
    private Urbans[] urbansList;
    //текущее количество вершин в графе
    private int vertexCount;
 
    public int[][] getMatrix() {
        return matrix;
    }
 
    //матрица смежности
    private int[][] matrix;
 
 
 
    public Graph()
    {
        matrix = new int[VERTEX_MAX][VERTEX_MAX];
        //перед началом работы заполняем матрицу смежности нулями
        for(int i = 0; i < VERTEX_MAX; i++)
            for(int j = 0; j < VERTEX_MAX; j++)
                matrix[i][j] = 0;
        vertexCount = 0;
        urbansList = new Urbans[VERTEX_MAX];
    }
    public void addUrban(String label)
    {
        urbansList[vertexCount++] = new Urbans(label);
    }
 
    //добавление Urbans
    void addEdge(int begin, int end)
    {
        matrix[begin][end] = 1;
        matrix[end][begin] = 0;
    }
 
    int getSuccessor(int u)
    {
        for(int j = 0; j < vertexCount; j++)
            if(matrix[u][j] == 1 && urbansList[j].get_isVisited() == false)
                return j; //возвращает первую найденную вершину
        return -1; //таких вершин нет
    }
 
}
 
[size="1"][color="grey"][I]Добавлено через 20 секунд[/I][/color][/size]
public class Urbans {
 
    private String label;
    private boolean isVisited;
 
    public Urbans(String label)
    {
        this.label = label;
        isVisited = false;
    }
 
    public String getLabel() {
        return label;
    }
 
    public void setLabel(String label) {
        this.label = label;
    }
 
    public boolean get_isVisited() {
        return isVisited;
    }
 
    public void setVisited(boolean isVisited) {
        this.isVisited = isVisited;
    }
}
0
1021 / 561 / 185
Регистрация: 18.08.2013
Сообщений: 2,026
Записей в блоге: 2
08.06.2019, 20:08 6
Lunch,
Задача про города и дороги
0
1 / 1 / 0
Регистрация: 19.12.2017
Сообщений: 147
08.06.2019, 22:34  [ТС] 7
Java
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
public class Graph {
 
    //максимальное количество вершин в графе
    private final int VERTEX_MAX = 100;
    //массив для хранения вершин
    private Urbans[] urbansList;
    //текущее количество вершин в графе
    private int vertexCount;
 
    public int[][] getMatrix() {
        return matrix;
    }
 
    //матрица смежности
    private int[][] matrix;
 
 
 
    public Graph()
    {
        matrix = new int[VERTEX_MAX][VERTEX_MAX];
        //перед началом работы заполняем матрицу смежности нулями
        for(int i = 0; i < VERTEX_MAX; i++)
            for(int j = 0; j < VERTEX_MAX; j++)
                matrix[i][j] = 0;
        vertexCount = 0;
        urbansList = new Urbans[VERTEX_MAX];
    }
    public void addUrban(String label)
    {
        urbansList[vertexCount++] = new Urbans(label);
    }
 
    //добавление Urbans
    void addEdge(int begin, int end)
    {
        matrix[begin][end] = 1;
        matrix[end][begin] = 0;
    }
 
    int getSuccessor(int u)
    {
        for(int j = 0; j < vertexCount; j++)
            if(matrix[u][j] == 1 && urbansList[j].get_isVisited() == false)
                return j; //возвращает первую найденную вершину
        return -1; //таких вершин нет
    }
 
}
Добавлено через 29 секунд
Java
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
public class Urbans {
 
    private String label;
    private boolean isVisited;
 
    public Urbans(String label)
    {
        this.label = label;
        isVisited = false;
    }
 
    public String getLabel() {
        return label;
    }
 
    public void setLabel(String label) {
        this.label = label;
    }
 
    public boolean get_isVisited() {
        return isVisited;
    }
 
    public void setVisited(boolean isVisited) {
        this.isVisited = isVisited;
    }
}
Плохо я знаком с форумами))

Добавлено через 2 часа 24 минуты
а лучше использовать обход в глубь или в ширину?
0
08.06.2019, 22:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2019, 22:34
Помогаю со студенческими работами здесь

Города, дороги.
Расстояния между городами заданы матрицей (Если между городами i,j есть прямой путь с расстоянием...

XLISP логическая задача про дочерей, города и занятия
Здраствуйте! Вот такая задача! Три дочери писательницы Дорис Кей - Джуди, Айрис и Линда тоже...

По системе двусторонних дорог определить, можно ли, закрыв какие-нибудь три дороги, добиться того, чтобы из города A нельзя было попасть в город B
Подкиньте пожалуйста идей как решать

задача. дом у дороги.
вечер добрый. подскажите способ решения. во вложении полное условие задачи, но я все же...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru