Re: китайская теорема об остатках
От: watchmaker  
Дата: 30.10.25 16:41
Оценка: 36 (2)
Здравствуйте, Pavel Dvorkin, Вы писали:


PD> взять минимальное из НОК для пар блистеров/флаконов


Если тебя устраивает сложность алгоритма, который рассматривает пары и выбирает ближайший день, то и решай второй случай так же.
Для каждой пары:
1. Находишь НОК и узнаёшь период;
2. Применяешь китайскую теорему об остатках (для случая не-взаимно простых модулей): https://en.wikipedia.org/wiki/Chinese_remainder_theorem#Generalization_to_non-coprime_moduli Либо узнаёшь, что решения для этой пары чисел нет, либо получаешь смещение.
3. Целочисленным делением размера кучи на размер блистера узнаёшь время, через которое размер всех кучек станет не больше размера блистера (раз говоришь, что там может быть произвольное число, тогда начать могли с 100000 штук, даже если потом пополнять будем по 10 или по 15).
Складываешь 1 и 3, вычитаешь 2. В целом, делать можно пункты в любом порядке, как удобнее писать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.