Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 0 / 0
Регистрация: 29.11.2019
Сообщений: 19

Необходимо подправить программу

01.05.2020, 13:03. Показов 2022. Ответов 0

Студворк — интернет-сервис помощи студентам
Есть задача
Оптимальный путь
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Для решения большого класса задач про поиск оптимального маршрута, анализа дорожного траффика и т.д. используется математический аппарат, именуемый графом. Почитать про графы можно на различных ресурсах всемирной паутины, например, тут. Напишите программу для поиска оптимального пути во взвешенном неориентированном графе, то есть в графе, где каждое ребро имеет вес.

PIC

В вашей программе обязательно должна присутствовать рекурсивная функция way(), которая и выполняет рассчет.
Формат ввода
В графе вершины пронумерованы. Граф является связанным, веса задаются методом, который называется «список ребер».

Входные данные имеют вид:

1 2 10
2 5 6
2 3 1
3 4 1
4 5 2
1 5


Расшифруем, что означает эта запись:
1. Вершины 1 и 2 связаны ребром с весом 10,
2. Вершины 2 и 5 – ребром с весом 6,
3. Вершины 2 и 3 – ребром с весом 1
и т.д.
Последняя строка говорит о том, из какой вершины в какую надо найти оптимальный путь. В нашем случае, из первой вершины в пятую.

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

1, 2, 3, 4, 5

Я пытался решить эту задачу. Вот мой код:
Python
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
def way(point):
    global road, end, endflag, points, sums, idealpoints, start, ways
    if point == start and end in road:
        ways.append(road)
        road = [start, 0]
    roads = points[point]
    if not endflag:
        for i in roads:
            if i[0] in road:
                continue
            elif i[0] == end:
                road.insert(0, end)
                road[-1] += i[1]
                endflag = True
                return
            else:
                road.insert(0, i[0])
                road[-1] += i[1]
                sums.append(i[1])
                way(i[0])
    road[-1] -= sums[-1]
    del points[road[1]][points[road[1]].index((road[0], sums[-1]))]
    points[road[0]] = idealpoints[road[0]]
    del road[0]
    del sums[-1]
    return
 
 
endflag = False
idealpoints = {}
sums = []
line = [0, 0, 0]
while len(line) == 3:
    line = list(map(int, input().split()))
    if len(line) == 3:
        if line[0] in idealpoints:
            idealpoints[line[0]].append((line[1], line[2]))
        else:
            idealpoints[line[0]] = [(line[1], line[2])]
        if line[1] in idealpoints:
            idealpoints[line[1]].append((line[0], line[2]))
        else:
            idealpoints[line[1]] = [(line[0], line[2])]
    else:
        end = line[1]
        start = line[0]
        points = idealpoints
        road = [start, 0]
        ways = []
        way(start)
ways.sort(key=lambda x: x[-1])
print(*ways[0][1:])
Помогите, пожалуйста, исправить код, чтобы он работал корректно.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.05.2020, 13:03
Ответы с готовыми решениями:

Необходимо подправить программу
я написал программу: #include <iostream> #include "liquid.h" #include "SpNapitki.h" using namespace std; void...

Необходимо подправить программу
Составить программу с использованием процедуры и функции Дана целочисленная квадратная матрица размером n*m. Написать программу,...

Необходимо подправить программу (убрать шифровку пароля)
Всем привет, вообщем, есть программа в которой идет регистрация и авторизация, но там записываемый пароль шифруется, кто-нибудь знает, как...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.05.2020, 13:03
Помогаю со студенческими работами здесь

Необходимо подправить программу (убрать шифровку пароля)
Всем привет, вообщем, есть программа в которой идет регистрация и авторизация, но там записываемый пароль шифруется, кто-нибудь знает, как...

Написать программу которая выясняет входит ли цифра 3 в запись числа n^2 Есть код но необходимо его подправить
Вот код который определяет сколько цифр в числе, делит число на 10 до тех пор пока результат не станет, его нужно изменить под задачу в...

необходимо подправить код
Помогите пожалуйста переделать код проги на паскале Она запускается но вычисления получаются неправильные Программа переводит число из...

Необходимо подправить код
Условие: Элементы файла F поместить на главную и побочную диагональ матрицы NN A × . Отрицательные элементы полученного массива...

Необходимо подправить запрос
Добры день всем. Есть запрос select constraint_name, unique_constraint_name from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS который...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru