|
0 / 0 / 0
Регистрация: 23.05.2013
Сообщений: 17
|
||||||
Как оптимизировать по памяти решение по сортировке дуг графа?07.10.2013, 00:34. Показов 1540. Ответов 11
Метки нет (Все метки)
короче все началось с того что я решал
задачу
Ориентированный взвешенный граф задан перечнем дуг (ориентированных рёбер). Отсортировать эти дуги по возрастанию длин, сохранив (в дополнительных полях) номера этих дуг во входных данных.
Входные данные Первая строка содержит количество вершин N ( 2 ≤ N ≤ 30000 ) и количество дуг (ориентированных рёбер) M ( 1 ≤ M ≤ 123456 ). Каждая из последующих M строк содержит ровно три целых числа u , v и len — начало, конец и длину дуги. 1 ≤ u , v ≤ N , u ≠ v , 1 ≤ len ≤ 109 . Гарантированно, что дл и ны всех дуг различны. Выходные данные Результат должен содержать M строк по четыре целых числа u , v , len , idx в каждой — начало, конец, длину дуг и , и её номер во входных данных (нумерация с единицы). При этом д у ги должны быть отсортированы по возрастанию длин. Примеры Входные данные 3 4 3 2 4 3 1 8 1 2 14 1 3 2 Выходные данные 1 3 2 4 3 2 4 1 3 1 8 2 1 2 14 3 вот таким способом
Вопрос: как можно оптимизировать мою программу или дайте верную идею для решения задачи (хотя бы ссилку на обсуждение подобной проблемы)
0
|
||||||
| 07.10.2013, 00:34 | |
|
Ответы с готовыми решениями:
11
Построение графа по списку дуг Списки смежности дуг ориентированного графа Проверка на ацикличность ориентированного графа с весами дуг |
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||
| 07.10.2013, 01:54 | |||||||||||
|
попробуй так, только sorted() заменил, так как она создаёт второй список
1
|
|||||||||||
|
0 / 0 / 0
Регистрация: 23.05.2013
Сообщений: 17
|
|
| 07.10.2013, 09:34 [ТС] | |
|
Ни помогло
![]() Я тут подумал, я считываю входные данные у виде строк функцией input() нельзя ли сразу считывать данные как целые числа? Они и по памяти меньше будут занимать чем строки
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 07.10.2013, 12:43 | |
|
Можно input, обернуть в eval, но не уверен, что поможет и такой ход очень не рекомендуется использовать из-за соображений безопасности. Потому что она принимает строку и воспроизводит ее как выражение Python.
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||
| 07.10.2013, 19:11 | |||||||
0
|
|||||||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 08.10.2013, 13:58 | |
|
rm -rf, кстати можно использовать генераторы, они память мало засоряют
0
|
|
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|
| 08.10.2013, 16:58 | |
|
rm -rf, map выкиньте, попробуйте циклом обычным, может прокатит...
0
|
|
|
42 / 42 / 7
Регистрация: 15.07.2012
Сообщений: 98
|
|
| 08.10.2013, 17:57 | |
|
rm -rf, плюсую tsar925, генераторы - хорошая идея, если влом руками писать - есть itertools.imap
0
|
|
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||||||
| 08.10.2013, 20:44 | |||||||||||||
|
Добавлено через 1 минуту а то, что у него третий питон, следует из
0
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 23.05.2013
Сообщений: 17
|
|
| 09.10.2013, 12:53 [ТС] | |
|
Вариант accept и вариант с генераторами действительно расходуют меньше памяти, но теперь не проходят по времени (лимит 1 секунда)
0
|
|
|
0 / 0 / 0
Регистрация: 23.05.2013
Сообщений: 17
|
||||||
| 12.10.2013, 01:46 [ТС] | ||||||
|
Узнал тут такую информацию от преподавателя, что возможно результаты измерения памяти которую использует программа неверны
и виновата в этом тестовая программа которая это делает. На такие мысли навела такая проверка
P.S. цифры в в коде взяты из условия задачи
0
|
||||||
| 12.10.2013, 01:46 | |
|
Помогаю со студенческими работами здесь
12
Докажите, что число дуг графа, смежного к G, равно Реализация ввода весов(значений) рёбер(дуг) у графа Найти пути графа с наименьшим числом дуг и кратчайшей длины. Как оптимизировать потребление памяти? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|