В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Ahha118
Ahha118
11.09.2022 10:42 •  Информатика

Оптимальный рабочий ограничение по времени на тест 2 секунды Система иерархии в компании Михаила представляет собой дерево, где у каждого из n сотрудников, кроме самого Михаила, есть непосредственный начальник (и наоборот, у Михаила есть несколько прямых подчиненных, у некоторых из них есть свои подчиненные, и так далее). К сожалению, у Михаила скопилось много рутинной работы, которую могут выполнить только рядовые сотрудники (то есть те, у которых нет ни одного подчиненного), но чтобы передать задание сотруднику, Михаил должен попросить передать это задание каждого другого сотрудника на пути между ними. Про каждого сотрудника известно число ci — сколько ему надо заплатить, чтобы задание было передано дальше и было в конечном итоге выполнено Михаилу выбрать рядового сотрудника так, чтобы заплатить за передачу и выполнение суммарно как можно меньше. Входные данные В первой строке ввода задано число n — количество сотрудников в компании (1⩽n⩽10е5). В следующей строке через пробел перечислены номера начальников: на i-м месте стоит номер непосредственного начальника i-го сотрудника. Число 0 означает, что это Михаил, и у него начальника нет. В третьей строке так же перечислены ci — сколько придется заплатить i-му сотруднику за передачу или выполнения задания (0⩽ci⩽10е9). Гарантируется, что себе Михаил ничего платить не должен. Выходные данные Выведите единственное число — минимальное суммарное число денег, с которым Михаилу придется расстаться. Пример входные данные
7
0 1 1 2 2 3 3
0 10 11 5 6 1 2
выходные данные
12
Можете написать идею алгоритма или код (желательно на плюсах)

Показать ответ
Ответ:
banana1106
banana1106
03.03.2022 09:21
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу.
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293

var
  x, y, a, b, k: integer;

begin
  k:=10000;
  repeat
    x:=k;
    a := 0; b := 0; y := 1;
    while x > 0 do
    begin
      if (x mod 10) mod 2 = 0
        then
        a := a * 10 + x mod 10
      else begin
        y := y * 10;
        b := b * 10 + x mod 10
      end;
      x := x div 10
    end;
    a := a * y + b;
    k := k + 1;
    until a = 26391;
    writeln(a:8, k-1:8); 
end.

 
0,0(0 оценок)
Ответ:
Halkjh
Halkjh
29.03.2022 17:40
Рекомендуется использовать формулу мальтуса, изменения числа рыб  n= k*n-q*n*n если за начальное количество рыб принять n0,то через год рыб в пруду будет n1=n0+k*n0-q*n0*n0,через два года n2=n1+k*n1-q*n1*n1 в таблице excel в ячейку a1 введите значение к=1,в ячейку b1 значение q=0,01,в ячейку с1 значение n0=100, в ячейку в2 формулу =c1+a1*c1-b1*c1*c1 (это количество рыб за 1 год) , в ячейку в3 формулу =b2+$a$1*b2-$b$1*b2*b2(количество рыб за 2 год) , скопируйте формулу с ячейки в3 до ячейки в11. изменяйте значение ячейки а1, например, поставьте значение 1,908, и получите 2000 рыб через 10 лет.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота