Загрузка [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

Подразделы

Другие разделы

Дата и время

12/04/2025 13:21:47

Авторизация

Имя:
Пароль:
Зарегистрироваться
Восстановить пароль
 

printРазбор задачи G. Взаиморасчеты

Тема: задача на идею, поиск инварианта
Сложность: сложная

В основу задачи положена задача M1258 из журнала Квант №12 за 1990г. (автор задачи О. Ижболдин).
Разбор решения задачи был опубликован в №12 за 1991г.

Для сведения задачи к рассмотренной в журнале и для избавления от дробных чисел выполним замену ai=(ai-S)N, где S – среднее арифметическое чисел ai.
Среднее станет равным 0 и результат операции обмена будет иметь вид a(i-1) . При рассмотрении частичных сумм b_i=∑_{j=0..i}\ a_j можно обнаружить, что операция сводится к обмену значений b_{i-1} и b_i.
Таким образом, получение конечного распределения возможно, если последовательность частичных сумм для конечного распределения состоит из перемешанных произвольным образом чисел b_i+d, где d – некоторая константа, совпадающая с одним из b_i (при обмене с 1 человеком происходит сдвиг b_i по кругу). Константу легко найти с помощью сортировки частичных сумм для начального и конечного распределения.
Затем нужно привести последовательность частичных сумм для начального распределения в соответствие с последовательностью частичных сумм для конечного распределения с помощью обменов (аналог сортировки пузырьком).
Время работы алгоритма O(N^2).
loading