илья06092001
26.04.2023 17:52

С++ Завдання
Створіть додаток «Телефонна книга». Необхідно зберігати дані про абонента (ПІБ, домашній телефон, робочий
телефон, мобільний телефон, додаткова інформація про
контакт) всередині відповідного класу. Наповніть клас
змінними-членами, функціями-членами, конструкторами,
inline-функціями-членами, використовуйте ініціалізатор,
реалізуйте деструктор. Обов’язково необхідно виділяти
динамічно пам’ять під ПІБ. Надайте користувачеві можливість додавати нових абонентів, видаляти абонентів,
шукати абонентів за ПІБ, показувати всіх абонентів, зберігати інформацію в файл і завантажувати з файлу.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Gulya6922
15.03.2020 08:57
Пять верст до небес и все лесом. 
Эка верста выросла (как Коломенская верста) . 
За семь верст киселя хлебать. 
Ты от дела на недельку, а оно от тебя на саженьку. 
Видеть на сажень сквозь землю. 
Загадка разгадка да семь верст правды. 
Каждый купец на свой аршин мерит. 
Прямой, будто аршин проглотил. 
Семи пядей во лбу. 
Сам с ноготок, а борода с локоток. 
От горшка два вершка, а уже указчик. 
Полено к полену - сажень. 
Москва верстой далека, а сердцу рядом. 
Любовь верстами не меряется. 
Сто верст молодцу не крюк. 
От слова до дела - целая верста. 
Верстой ближе - пятаком дешевле. 
Жили с локоть, а осталось с ноготь. 
В чужих руках ноготок с локоток. 
Дай с ноготок, запросит с локоток. 
Семь аршин говядины да три фунта лент (о бессмыслице)
0,0(0 оценок)
Ответ:
nikitosu5
20.05.2020 08:40
Каждая из компонент связности должна быть кликой (иначе говоря, каждые две вершины в одной компоненте связности должны быть связаны ребром). Если в i-ой компоненте связности n_i вершин, то общее число рёбер будет суммой по всем компонентам связности:

\displaystyle \sum_{i=1}^K\frac{n_i(n_i-1)}2=\frac12\sum_{i=1}^K n_i^2-\frac12\sum_{i=1}^Kn_i=\frac12\sum_{i=1}^K n_i^2-\frac N2

Требуется найти максимум этого выражения (т.е. на самом деле - максимум суммы квадратов) при условии, что сумма всех ni равна N и ni - натуральные числа.

Если K = 1, то всё очевидно - ответ N(N - 1)/2. Пусть K > 1.

Предположим, n1 <= n2 <= ... <= nK - набор чисел, для которых достигается максимум, и n1 > 1. Уменьшим число вершин в первой компоненте связности до 1, а оставшиеся вершины "перекинем" в K-ую компоненту связности. Вычислим, как изменится сумма квадратов:
\Delta(\sum n_i^2)=(1^2+(n_K+n_1-1)^2)-(n_1^2+n_K^2)=2(n_1-1)(n_K-1)
Поскольку по предположению n1 > 1 (тогда и nK > 1), то сумма квадратов увеличится, что противоречит предположению о том, что на выбранном изначально наборе достигается максимум. Значит, максимум достигается, если наименьшая по размеру компонента связности - изолированная вершина. Выкинем эту компоненту связности, останутся K - 1 компонента связности и N - 1 вершина. Будем продолжать так делать, пока не останется одна вершина, тогда получится, что во всех компонентах связности кроме последней должно быть по одной вершине.

Итак, должно выполняться
n_1=n_2=\cdots=n_{K-1}=1;\qquad n_K=N-K+1

Подставив в исходную формулу, получаем
\displaystyle\frac{(N-K)(N-K+1)}{2}

Это и есть ответ.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота