bekker222
02.12.2022 02:46

На бесконечном поле имеется прямоугольник ограниченности нами. Длины сторон прямоугольника неизвестно. Робот находится слева от прямоугольника. На рисунке указан один из расположение стен робота робот обозначен буквой Р напиши для работы алгоритма закрывающимся клетки снаружи прямо угольника примыкающие к его правой стене . Робот должен закрасить только те клетки удовлетворяющие данному условия. Например для приведённого выше рисунка робот должен закрасить следующие клетки смотрите рисунок конечно это положение робота может быть производим. Алгоритм должен решать задачи для произвольного размера поле любого допустимого расположение стен UT прямоугольного поля при исполнении алгоритма робот не должно разрушаться, выполнения алгоритма должно завершиться алгоритм может быть выполнен среде формального исполнение или записать текстом редакторею

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Сашалажа
18.02.2021 00:11
Каждая из компонент связности должна быть кликой (иначе говоря, каждые две вершины в одной компоненте связности должны быть связаны ребром). Если в 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 оценок)
Ответ:
26dura
12.07.2021 04:00
// 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
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота