Natali20171
30.04.2020 15:33

D2. фанатам стратегий 3 (7 ) данный шаг отличается от предыдущего формулировкой ограничений на входные данные. перед проверкой решения с формулировкой ограничений из этого шага, убедитесь, что это решение проходит и на предыдущем шаге. к добавлено примечание! вскоре стало понятно, что всё совсем не просто. нельзя взять и построить здание. их в этой игре ещё и открыть нужно. новое здание типа a можно построить, только если на нашей базе функционирует хотя бы по одному новому зданию из списка необходимых зданий здания типа a. сколько на самом деле нам придётся построить зданий (не считая электростанций)? какие они? в каком порядке их строить? ваша – найти ответы на эти вопросы. примечание гарантируется, что существует такая последовательность постройки зданий, что здания всех типов можно построить. формат входных данных в первой строке записаны три целых числа n, m и t (1≤m≤n≤5⋅104; t=1) – количество различных типов новых зданий в игре, количество новых зданий, которые нужно построить, и номер формата выходных данных. в следующей строке записаны m названий типов зданий, разделённых пробелами – требуемые для обеспечения устойчивой обороны здания. гарантируется, что строка не содержит одинаковых типов зданий. далее идёт n блоков по 2 строки следующего вида: в первой строке – название типа здания. во второй – длина списка необходимых зданий для здания данного типа и сам список необходимых зданий. гарантируется, что список не содержит одинаковых типов зданий. сумма длин списков необходимых зданий не превышает 5⋅104. название каждого типа здания – это число от 1 до 105. формат выходных данных если t=1, то выведите одно число – минимальное количество зданий, которые нужно построить. если t=2, то в первой строке выведите одно число – минимальное количество зданий, которое необходимо построить, а во второй – k названий зданий, которые нужно построить, в том порядке, в котором их нужно строить. если существует несколько подходящих последовательностей – выведите любую из них. sample input: 3 1 1 1 2 0 1 2 2 3 3 0 sample output: 3

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
яна1765
10.06.2022 16:11
Чертёж дан во вложении.
Пусть ΔABC - равнобедренный, АВ = с - его основание, АС = ВС = b - боковые стороны. По условию треугольник симметричен относительно горизонтальной оси, так что его основание АВ должно быть перпендикулярно горизонтальной оси и при этом АО = ОВ, а вершина С попадет на горизонтальную ось. Разместим ΔABC так, чтобы основание попало на вертикальную ось.
Окружность, описанная вокруг треугольника, пройдет через все три его вершины. Точка М - центр описанной окружности, - лежит на пересечении перпендикуляров, проведенных из середин сторон треугольника. Поскольку ΔABC равнобедренный, то ОС - его высота и отрезок МС, равный радиусу окружности R, также лежит на горизонтальной оси.
Найдем высоту ОС, обозначив её через h, по теореме Пифагора.
ОС - это катет ΔAOC, AO ⊥ OC.
\displaystyle h= \sqrt{AC^2-AO^2}= \sqrt{b^2-\left(\frac{c}{2}\right)^2}
Площадь ΔABC находим по формуле
\displaystyle S= \frac{1}{2}\cdot AB \cdot OC = \frac{1}{2}hc
Для нахождения радиуса R = MC рассмотрим прямоугольные ΔAOC и ΔMDC, имеющие общий угол АСО = α
\displaystyle \cos \alpha= \frac{OC}{AC}= \frac{CD}{MC} \to MC= \frac{AC\cdot CD}{OC}; \\ R= \frac{b\cdot \displaystyle \frac{b}{2}}{h} = \frac{b^2}{2h}; \qquad OM=h-R
Теперь легко сделать необходимое построение.
Для этого откладываем от начала координат по горизонтальной оси отрезок ОМ и проводим из него, как из центра, окружность радиуса R. Соединяем между собой три точки пересечения окружностью осей координат и получаем треугольник с длинами сторон, равными заданным.

Ниже приводится программа на языке Microsoft QBasic, позволяющая рассчитать длину отрезка ОМ (Mx - координату х точки М) и радиус описанной окружности R по заданной длине основания с и длине боковой стороны b.

INPUT "Основание: ", c
INPUT "Боковая сторона: ", b
h = SQR(b ^ 2 - (c / 2) ^ 2)
R = b ^ 2 / (2 * h)
Mx = h - R
PRINT "Радиус равен "; R, "Координата центра равна "; Mx

Тестовое решение:
Y:\qbasic>QBASIC.EXE
Основание: 6
Боковая сторона: 5
Радиус равен  3.125         Координата центра равна  .875

Чтобы продолжить, нажмите любую клавишу

(qbasic) построить равнобедренный треугольник симметричный относительно горизонтальной оси, задать е
0,0(0 оценок)
Ответ:
233423
16.04.2020 11:53
Const nx=30;mx=30;
var i,j,n,m:integer;A:array[1..nx,1..mx] of integer;B,D:array[1..nx] of integer;
begin 
write('Введите n');Readln(n);
write('Введите m');Readln(m);
for i:=1 to n do begin
for j:=1 to m do вegin
A[i,j]:=random(100)-20;
write(A[i,j]:4);end;writeln;end;writeln;
for i:=1 to n do begin
for j:=1 to m do begin
if (A[i,j] mod 3 =0) then begin
B[i]:= B[i] + A[i,j];write(A[i,j]:4);D[i]:= D[i] + 1;end;end;writeln;end;
for i:=1 to n do begin
if (B[i]=0) and (D[i]= 0) then B[i]:= -10;
write(B[i]:4);end;end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота