2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Генка Короткевич и студентики
Сообщение04.11.2024, 01:04 


04/06/22
65
Доброго времени суток, господа. Столкнулся с такой задачей:
Михаил Владимирович, суровый преподаватель факультета прикладной магии и иллюзии Байтландского Государственного университета задал студентам лабораторную работу, состоящую из задач на различные темы. Общее кол-во тем равно $N$, и они пронумерованы от 1 до $N$ в некотором порядке, при этом на i-ю тему Михаил Владимирович задал $A_i$ задач. Поскольку задачи выданы всем одинаковые, студенты решили объединить усилия. Обычный студент может решить одну задачу на любую тему за один день. К счастью для студентов, среди них присутствует 10-классник Гена, посещающий занятия ради любопытства. Гена способен решить до $X$ задач включительно за день, однако задачи Михаила Владимировича настолько суровы, что даже Гена не может решать задачи на разные темы в один и тот же день. Всего у Михаила Владимировича учится $K$ студентов. Помогите студентам и школьнику Гене так распределить обязанности, чтобы решить все задачи за наименьшее кол-во дней.
Формат входных данных:
$1 \leqslant N \leqslant 10^9$, $0 \leqslant X, K \leqslant 10^9$, $1 \leqslant X + K$, $1 \leqslant A_i \leqslant 10^9$.
ограничение по времени - 2 секунды, ограничение по памяти - 256 Мб.
Я решил использовать бинарный поиск по ответу, но не понимаю, как можно быстро отвечать на вопрос: "Можно ли решить все задачи за x дней?". По факту, у нас есть как бы $x \cdot K$ квадратиков размера 1 на 1 и $x$ прямоугольников размера 1 на $X$, и надо ими покрыть все прямоугольники, соответствующие каждой теме. Дальше идей нет. Прошу помощи

 Профиль  
                  
 
 Re: Генка Короткевич и студентики
Сообщение04.11.2024, 02:30 
Заслуженный участник
Аватара пользователя


16/07/14
9201
Цюрих
Laguna в сообщении #1660552 писал(а):
По факту, у нас есть как бы $x \cdot K$ квадратиков размера 1 на 1 и $x$ прямоугольников размера 1 на $X$, и надо ими покрыть все прямоугольники, соответствующие каждой теме
Так жадность же.

(Оффтоп)

Меня несколько смущают имя и отчество преподавателя, встречающиеся на https://cs.hse.ru/ai/courses/152247386.html

 Профиль  
                  
 
 Re: Генка Короткевич и студентики
Сообщение04.11.2024, 02:31 
Аватара пользователя


07/01/16
1612
Аязьма
Я бы так попробовал:$$a_i=\lfloor{A_i/X}\rfloor, r_i=A_i-X\cdot a_i, A=\sum{a_i}, R=\sum{r_i}$$Далее, если $A=\lceil{R/K}\rceil$, то это уже прямо ответ, если же левая часть больше, значит, Гене надо помочь и забрать у него часть задач; ответ вроде бы тоже выписывается явно. Остается третий случай, когда у Гены слишком мало полных блоков по $X$ задач; здесь уже нужно что-то немного запрограммировать, чтобы подобрать такое $\Delta A$, чтобы выполнялось$$A+\Delta A=\left\lceil{\frac{R-\sum_{i=1}^{\Delta A}{r_i}}{K}}\right\rceil$$(при этом подразумевается предварительная сортировка $r_i$ по убыванию; хватит ли для сортировки времени и места - не пытался прикинуть)

 Профиль  
                  
 
 Re: Генка Короткевич и студентики
Сообщение04.11.2024, 02:56 
Заслуженный участник
Аватара пользователя


16/07/14
9201
Цюрих
Так, я вот это не заметил.
Laguna в сообщении #1660552 писал(а):
$1 \leqslant N \leqslant 10^9$
Тут точно всё правильно? Прочитать за 2 секунды несколько гигабайт, в принципе, возможно, но требует весьма нетривиальных усилий.

 Профиль  
                  
 
 Re: Генка Короткевич и студентики
Сообщение04.11.2024, 13:33 
Аватара пользователя


07/01/16
1612
Аязьма
mihaild в сообщении #1660559 писал(а):
Прочитать за 2 секунды несколько гигабайт, в принципе, возможно, но требует весьма нетривиальных усилий
Да, вот числа выглядят довольно астрономически, я поэтому в скобочках оставил комментарий, что не прикидывал реалистичность исполнения в рамках заданных ограничений на время и память. Можно, кстати, избежать сортировки $r_i$, а просто в рамках начальной процедуры определения $a_i,r_i$ заполнить два массива размера $X-1$: в одном количество тем для данного остатка $r_i$ (нулевые остатки не интересуют), а в другом кумулятивная сумма количества заданий, начиная от бОльших $r_i$ к меньшим. Это по идее сделает и третий случай быстро вычислимым

 Профиль  
                  
 
 Re: Генка Короткевич и студентики
Сообщение04.11.2024, 14:19 


04/06/22
65
mihaild в сообщении #1660559 писал(а):
Тут точно всё правильно? Прочитать за 2 секунды несколько гигабайт, в принципе, возможно, но требует весьма нетривиальных усилий.

Да, Вы правы, перед сном создавал тему и чуток ошибся. Правильный формат такой: $1 \leqslant N \leqslant 10^5$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group