Бочкова_Елена203
?>

Ребята Найдите ошибку в программе: program ; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. отсутствует имя программы имя программы написано не правильно отсутствует раздел переменных 2. Найдите ошибку в программе: program Prim 2 1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); в readln end. отсутствует раздел переменных имя программы написано не правильно отсутствует имя программы 3. Найдите ошибку в программе: program Prim_2_1; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. имя программы написано не правильно отсутствует раздел переменных отсутствует ввод данных 4. Найдите ошибку в программе: program Prim_2_1; var a, b:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. не все переменные описаны в разделе описания переменных отсутствует раздел переменных отсутствуют вычисления в программе 5. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); p:=a+b+c+d+f; writeln('p=', p); readln end. отсутствует команда начала программы отсутствуют вычисления в программе отсутствует раздел ввода данных 6. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); writeln('p=', p); readln end. отсутствует команда завершения программы отсутствует команда начала программы отсутствуют вычисления в программе 7. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. допущена ошибка в операторе присваивания отсутствует команда завершения программы отсутствует команда начала программы 8. Следующий алгоритм в результате выполнения программы находит: program Prim_2_3; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c; writeln('p=', p); readln end находит сумму 4 чисел находит сумму 3 чисел находит сумму 5 чисел 9. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p=:a+b+c+d+f; writeln('p=', p); readln end. допущена ошибка в операторе присваивания отсутствует команда начала программы отсутствует команда вывода результата на экран компьютера 10. Следующий алгоритм в результате выполнения программы находит значение выражения: program Prim_2_2; var y, x:integer; begin writeln('Введите x:'); readln(x); y:=15*x*x*x+6*x*x+18*x-29; writeln('y=', y); readln end. y=15x+6x2+18x-29 y=15x3+6x2+18x-29 y=5x3+6x2+18x-9

Информатика

Ответы

Annabill1987
Каждая из компонент связности должна быть кликой (иначе говоря, каждые две вершины в одной компоненте связности должны быть связаны ребром). Если в 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}

Это и есть ответ.
aynaakzhigitova
// PascalABC.NET 3.0, сборка 1128
procedure Convert(V:array of integer);
begin
  for var i:=0 to V.Length-1 do
    if V[i]>9 then V[i]:=9
    else
      if V[i]<5 then V[i]:=5
end;

procedure Develop(c:char; k:integer);
begin
  WritelnFormat('*** Массив {0} ***',c);
  var a:=ArrRandom(k,-5,15);
  Write('исходный : '); a.PrintLn(',');
  Convert(a);
  Write('результат: '); a.PrintLn(',');
end;

begin
  var m:=ReadInteger('Количество элементов в массиве A:');
  var n:=ReadInteger('Количество элементов в массиве B:');
  Develop('A',m);
  Develop('B',n)
end.

Тестовое решение:
Количество элементов в массиве A: 15
Количество элементов в массиве B: 10
*** Массив A ***
исходный : 6,5,-5,9,1,0,-3,9,13,12,-4,8,11,14,-5
результат: 6,5,5,9,5,5,5,9,9,9,5,8,9,9,5
*** Массив B ***
исходный : 5,12,12,4,7,9,7,-3,-1,-2
результат: 5,9,9,5,7,9,7,5,5,5

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Ребята Найдите ошибку в программе: program ; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. отсутствует имя программы имя программы написано не правильно отсутствует раздел переменных 2. Найдите ошибку в программе: program Prim 2 1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); в readln end. отсутствует раздел переменных имя программы написано не правильно отсутствует имя программы 3. Найдите ошибку в программе: program Prim_2_1; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. имя программы написано не правильно отсутствует раздел переменных отсутствует ввод данных 4. Найдите ошибку в программе: program Prim_2_1; var a, b:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. не все переменные описаны в разделе описания переменных отсутствует раздел переменных отсутствуют вычисления в программе 5. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); p:=a+b+c+d+f; writeln('p=', p); readln end. отсутствует команда начала программы отсутствуют вычисления в программе отсутствует раздел ввода данных 6. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); writeln('p=', p); readln end. отсутствует команда завершения программы отсутствует команда начала программы отсутствуют вычисления в программе 7. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c+d+f; writeln('p=', p); readln end. допущена ошибка в операторе присваивания отсутствует команда завершения программы отсутствует команда начала программы 8. Следующий алгоритм в результате выполнения программы находит: program Prim_2_3; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p:=a+b+c; writeln('p=', p); readln end находит сумму 4 чисел находит сумму 3 чисел находит сумму 5 чисел 9. Найдите ошибку в программе: program Prim_2_1; var a, b, c, d, f, p:integer; begin writeln('Введите 5 численных значений:'); readln(a, b, c, d, f ); p=:a+b+c+d+f; writeln('p=', p); readln end. допущена ошибка в операторе присваивания отсутствует команда начала программы отсутствует команда вывода результата на экран компьютера 10. Следующий алгоритм в результате выполнения программы находит значение выражения: program Prim_2_2; var y, x:integer; begin writeln('Введите x:'); readln(x); y:=15*x*x*x+6*x*x+18*x-29; writeln('y=', y); readln end. y=15x+6x2+18x-29 y=15x3+6x2+18x-29 y=5x3+6x2+18x-9
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

arnika-ooo1
uisfbu7777733
Александровна-Грузман
elenalukanova
Vrezh
Columbia777
milkiev
maxchuev
nikziam
nkaminskaja
Абумислимовна_кооператив585
iptsr4968
serov555zaq5
igschuschkov6211
alenih13