Задача 5. Трехдольный графМистер Фокс сейчас был на кружке по программированию,

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

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

Задать свой вопрос
1 ответ
Пусть в "долях" a lt;= b lt;= c вершин, и проведены все рёбра меж различными "долями". Так как из каждой вершины, лежащей в первой "доле", можно провести только b + c рёбер, из 2-ой части 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
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт