0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 19

Задачка про каналы

21.12.2019, 05:37. Показов 1901. Ответов 9

Студворк — интернет-сервис помощи студентам
В районе города не работает компьютерная сеть. Известно количество узлов сети. Протестировав каналы, выяснили перечень рабочих каналов и записали этот перечень в виде пар номеров узлов сети. Какое минимальное число каналов надо восстановить, чтобы сеть заработала?
6
1 2
2 3
5 6
Выходные данные
2
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2019, 05:37
Ответы с готовыми решениями:

Задачка про забор
Напротив Васиного дома поставили забор, состоящий из 10 9 дощечек. Каждый день, выгдядывая в окно, он видел, что часть забора с дощечки l i...

Задачка про руны
Руны — это древние магические знаки, которые наши предки использовали как буквы. Говорят, что рунные знаки обладают магическими свойствами,...

Задачка про кастинг
Кастинг В театре работают n актеров. Известно, что среди них a — высоких, b — голубоглазых и с — блондинов. Для главной роли в новом...

9
55 / 40 / 18
Регистрация: 16.12.2019
Сообщений: 149
21.12.2019, 10:13
Если сеть не звезда и не кольцо:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from sys import stdin
 
 
n = int(input())
line = [(i, 0) for i in range(n)]
 
for s in stdin:
    i, j = map(int, s.split())
    line.extend([(i, -1), (j, 1)])
 
r = n = 0
for v, k in sorted(line):
    if k == 0 and not n:
        r += 1
    else:
        n -= k
    
print(r)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
21.12.2019, 10:33
8
1 2
2 3
5 6
7 8
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.12.2019, 11:39
Цитата Сообщение от matrenkino Посмотреть сообщение
Какое минимальное число каналов надо восстановить, чтобы сеть заработала?
Эм… а почему нужно два канала восстановить? См.рисунок ниже. Ведь достаточно пробросить один линк., чтобы восстановить связность всей сети.



0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
21.12.2019, 11:42
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Ведь достаточно пробросить один линк., чтобы восстановить связность всей сети.
Да, но городов то 6, а не 5.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.12.2019, 11:44
А, понял, у узла №4 вообще нет линков.
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.12.2019, 12:03
Думаю, решение будет таким: считаем количество изолированных подграфов. Ответом будет число на единицу меньше.

Добавлено через 11 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ls = [
  (1, 2),
  (2, 3),
  (5, 6),
]
 
ls += [(i + 1, i + 1) for i in range(6)]
print(ls)
 
result = []
for i, j in ls:
    is_found = False
    for k in result:
        if i in k:
            k.add(j)
            is_found = True
            break
    if not is_found:
        result.append(set((i, j)))
print(result)
 
print(len(result) - 1)
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
21.12.2019, 12:37
6
1 2
2 3
5 6
6 1
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
21.12.2019, 14:56
Блин

Не хочется переписывать логику, поэтому придётся мерджить:
Python
1
2
3
4
if sum(map(len, result)) == 6:
    print(len(result) - 1)
else:
    pass # [{1, 2, 3}, {1, 5, 6}, {4}]
Добавлено через 2 часа 7 минут
Это глупо:
Python
1
2
3
4
5
6
7
8
result = [{1, 2, 3}, {1, 5, 6}, {4}]
 
count = 0
for i in result:
    for j in result:
        if i != j and not bool(i & j):
            count += 1
print(count // 2 - 1)
0
0 / 0 / 0
Регистрация: 20.12.2019
Сообщений: 19
22.12.2019, 12:18  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
edges1 = [] 
channels = int(input()) 
p1 = 0 
n = '' 
edges2 = []
while edges2.count(str(channels)) != 1: 
    n = input() 
    edges2 = n.split() 
    edges1.append(edges2)
    
edges3 = [] 
for i in range(len(edges1)): 
    edges3 = edges3 + edges1[i] 
    edges3 = list(dict.fromkeys(edges3)) 
    p2 = 1
    
for j in range(len(edges3)): 
    if int(edges3[j]) == p2: 
        p2 = p2 + 1 
    else: 
        p1 = p1 + 2 
        p2 = p2 + 2 
print(p1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2019, 12:18
Помогаю со студенческими работами здесь

Задачка про скользящую улитку
Изобразите извилистый спуск улитки по стене по заданной траектории (см. примеры). Формат ввода Вводится одна строка. Начальный...

Задачка для начинающих про метро
Привет, есть задачка, где имеется кольцевая станция метро. Человек заходит на одной и выходит на другой и нам нужно посчитать какой путь...

Задачка про Совпадение стрелок часов
На вход программе подаются два целых числа n и m, каждое в отдельной строке 0<n≤12, 0≤m<60, указывающие момент времени "n часов m...

Интересная задачка про распаковку архивов
Всем привет. Давно меня не было, давно не мучал всех) Итак, задачка следующая - надо извлечь архив gz, без самого архива. Поясняю. ...

Python3 задачка про фазанов и кроликов
В загоне всего 34 голов животных из них фазанов - не известно кроликов - не известно но известно, что всего 94 лапы =) ...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru