1. Главная
  2. Библиотека
  3. Теория вероятностей
  4. Игорь решил заняться спортом и изменить свой вес. У нег...
Разбор задачи

Игорь решил заняться спортом и изменить свой вес. У него есть календарь на дней, в каждой клетке которого записано число . Это значит, что в день Игорь изменит свой вес на килограмм с помощью определённых действий. Игорь ненавидит число , поэтому он не

  • Предмет: Теория вероятностей
  • Автор: Кэмп
  • #Теория вероятностей и математическая статистика
  • #Теория случайных величин
Игорь решил заняться спортом и изменить свой вес. У него есть календарь на дней, в каждой клетке которого записано число . Это значит, что в день Игорь изменит свой вес на килограмм с помощью определённых действий. Игорь ненавидит число , поэтому он не

Условие:

Игорь решил заняться спортом и изменить свой вес. У него есть календарь на n\boldsymbol{n} дней, в каждой клетке которого записано число ai\boldsymbol{a}_{\boldsymbol{i}}. Это значит, что в день i\boldsymbol{i} Игорь изменит свой вес на ai\boldsymbol{a}_{\boldsymbol{i}} килограмм с помощью определённых действий. Игорь ненавидит число k\boldsymbol{k}, поэтому он не хочет, чтобы нашелся такой непустой подотрезок массива a\boldsymbol{a}, сумма элементов которого была равна k\boldsymbol{k}. Ваша задача - найти, какое минимальное количество дней с тренировками нужно добавить (вставить день в начало, конец, или между двумя днями в календаре), чтобы условие выполнялось. Гарантируется, что в массиве нет числа kk. Обратите внимание, что числа на листах календаря, которые вы вставляете, могут быть абсолютно любыми. Формат входных данных В первой строчке вводятся числа n(1n105)n\left(1 \leq n \leq 10^{5}\right) и k(109k109)k\left(-10^{9} \leq k \leq 10^{9}\right) - количество тренировок и число, которое Игорь ненавидит. Во второй строчке вводятся nn чисел ai(109ai109,aik)a_{i}\left(-10^{9} \leq a_{i} \leq 10^{9}, a_{i} \neq k\right) - изменения веса Игоря. Формат результата Выведите единственное число - ответ на задачу.

Решение:

Наша задача – вставить минимальное число дополнительных дней (то есть добавить произвольные числа в любые позиции календаря), чтобы в итоговом списке не существовало никакого непустого отрезка, сумма которого равна k.

Чтобы решить эту задачу, рассмотрим следующее наблюдение. Пусть у нас есть последовательность изменений a1, a2, …, an. Определим префиксные суммы так:

  s0 = 0, si = a1 + a2 + … + ai.

Заметим, что сумма отрезка с l по r равна sr – s(l–1). Таким образом, отрезок имеет сумму k, если
  sr – s(l–1) = k  ⟹  sr = s(l–1) + k.

...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое ключевое свойство префиксных сумм используется для определения наличия подотрезка с заданной суммой K?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет