Задать вопрос
28 января, 20:57

Задача 5. Трехдольный граф

Мистер Фокс сегодня был на кружке по программированию, где узнал про двудольные графы. Этого ему показалось мало и он решил придумать и изучить "трехдольные" графы. Мистер Фокс нарисовал на листе бумаги три непересекающихся круга и отметил внутри них точки (точки - это вершины его графа, в одном круге лежат вершины из одной "доли"). Затем он провел несколько ребер - линий, которые соединяли только точки из разных кругов. Какое наибольшее количество ребер он мог провести, если всего в его графе 41 вершин и нет двух ребер, соединяющих одну и ту же пару вершин?

+1
Ответы (1)
  1. 28 января, 22:53
    0
    Пусть в "долях" a < = b < = c вершин, и проведены все рёбра между разными "долями". Так как из каждой вершины, лежащей в первой "доле", можно провести только b + c рёбер, из второй доли - a + c рёбер, из третьей - a + b рёбер, то общее количество рёбер равно (a * (b + c) + b * (a + c) + c * (a + b)) / 2 = ab + ac + bc (деление на 2 возникает из-за того, что каждое ребро подсчитывается дважды).

    Нужны такие a, b, c, при которых значение выражения ab + bc + ac будет максимально. Максимальное значение можно найти перебором.

    python 3:

    max_value = 0

    for a in range (41//3 + 1) :

    for b in range (a, (41 - a) / / 2 + 1) :

    c = 41 - a - b

    value = a * b + a * c + b * c

    max_value = max (max_value, value)

    print (max_value)

    Ответ. 560
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Задача 5. Трехдольный граф Мистер Фокс сегодня был на кружке по программированию, где узнал про двудольные графы. Этого ему показалось мало ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы